php rdkafka 偏移量,php-rdkafka 扩展安装

php有两种方式调用kafka

一、php-rdkafka

文档地址:https://arnaud-lb.github.io/php-rdkafka/phpdoc/book.rdkafka.html

rdkafka安装需要依赖librdkafka所以我们需要先安装librdkafka

下载地址http://pecl.php.net/package/rdkafka

git clone https://github.com/edenhill/librdkafka.git

cd librdkafka

./configure

make && make install

安装php-rdkafka扩展

git clone https://github.com/arnaud-lb/php-rdkafka.git

cd php-rdkafka

phpize

./configure --with-php-config=/usr/local/php7.0/bin/php-config

make && make install

然后在php.ini写入

extension = rdkafka.so

a3ef0d682f4cf419f5f3359457bc32ae.png

image.png

449694111794459fa5b578faa55140e0.png

image.png

二、kafka-php 扩展包

文档地址:https://github.com/weiboad/kafka-php

三、简单示例

生成者

setLogLevel(LOG_DEBUG);

$rk->addBrokers("192.168.2.152");

$topic = $rk->newTopic("shop");

for ($i = 0; $i < 10; $i++) {

$topic->produce(RD_KAFKA_PARTITION_UA, 0, "发送信息: $i");

$rk->poll(0);

}

while ($rk->getOutQLen() > 0) {

$rk->poll(50);

}

?>

消费者

set('group.id', 'myConsumerGroup');

$rk = new RdKafka\Consumer($conf);

$rk->addBrokers("192.168.2.150:9092");

$topicConf = new RdKafka\TopicConf();

$topicConf->set('auto.commit.interval.ms', 100);

$topicConf->set('offset.store.method', 'file');

$topicConf->set('offset.store.path', sys_get_temp_dir());

$topicConf->set('auto.offset.reset', 'smallest');

$topic = $rk->newTopic("shop", $topicConf);

// Start consuming partition 0

$topic->consumeStart(0, RD_KAFKA_OFFSET_STORED);

while (true) {

$message = $topic->consume(0, 120*10000);

switch ($message->err) {

case RD_KAFKA_RESP_ERR_NO_ERROR:

//没有错误打印信息

var_dump($message);

break;

case RD_KAFKA_RESP_ERR__PARTITION_EOF:

echo "等待接收信息\n";

break;

case RD_KAFKA_RESP_ERR__TIMED_OUT:

echo "超时\n";

break;

default:

throw new \Exception($message->errstr(), $message->err);

break;

}

}

?>

23e2675f27c7dfa676502033498c136c.png

image.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值