php在kafka写数据,kafka-php

软件简介

Kafka-php 使用纯粹的 PHP 编写的 kafka 客户端,目前支持 0.8.x 以上版本的 Kafka,该项目 v0.2.x 和 v0.1.x

不兼容,如果使用原有的 v0.1.x 的可以参照文档 Kafka PHP v0.1.x

Document, 不过建议切换到

v0.2.x 上。v0.2.x 使用 PHP 异步执行的方式来和kafka broker 交互,较 v0.1.x 更加稳定高效, 由于使用 PHP

语言编写所以不用编译任何的扩展就可以使用,降低了接入与维护成本。

安装环境要求

PHP 版本大于 5.5

Kafka Server 版本大于 0.8.0

消费模块 Kafka Server 版本需要大于 0.9.0

Installation

使用 Composer 安装

添加 composer 依赖 nmred/kafka-php 到项目的 composer.json 文件中即可,如:

{

"require": {

"nmred/kafka-php": "0.2.*"

}

}

Produce

require '../vendor/autoload.php';

date_default_timezone_set('PRC');

use Monolog\Logger;

use Monolog\Handler\StdoutHandler;

// Create the logger

$logger = new Logger('my_logger');

// Now add some handlers

$logger->pushHandler(new StdoutHandler());

// 设置生产相关配置,具体配置参数见 [Configuration](Configuration.md)

$config = \Kafka\ProducerConfig::getInstance();

$config->setMetadataRefreshIntervalMs(10000);

$config->setMetadataBrokerList('10.13.4.159:9192');

$config->setBrokerVersion('0.9.0.1');

$config->setRequiredAck(1);

$config->setIsAsyn(false);

$config->setProduceInterval(500);

$producer = new \Kafka\Producer(function() {

return array(

array(

'topic' => 'test',

'value' => 'test....message.',

'key' => 'testkey',

),

);

});

$producer->setLogger($logger);

$producer->success(function($result) {

var_dump($result);

});

$producer->error(function($errorCode, $context) {

var_dump($errorCode);

});

$producer->send();

Consumer

require '../vendor/autoload.php';

date_default_timezone_set('PRC');

use Monolog\Logger;

use Monolog\Handler\StdoutHandler;

// Create the logger

$logger = new Logger('my_logger');

// Now add some handlers

$logger->pushHandler(new StdoutHandler());

$config = \Kafka\ConsumerConfig::getInstance();

$config->setMetadataRefreshIntervalMs(10000);

$config->setMetadataBrokerList('10.13.4.159:9192');

$config->setGroupId('test');

$config->setBrokerVersion('0.9.0.1');

$config->setTopics(array('test'));

//$config->setOffsetReset('earliest');

$consumer = new \Kafka\Consumer();

$consumer->setLogger($logger);

$consumer->start(function($topic, $part, $message) {

var_dump($message);

});

Basic Protocol

基础协议 API 调用方式见 Example

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值