安装PHP—kafka扩展后,就可以开始编写 php 消费消息的脚本了,php-rdkafka 扩展提供了几种消息处理的方式
低级方式(Low level)
这种方式没有消费组的概念
<?php
$rk = new RdKafkaConsumer();
$rk->setLogLevel(LOG_DEBUG);
// 指定 broker 地址,多个地址用"," 分割
$rk->addBrokers("192.168.33.1:9092");
$topic = $rk->newTopic("test");
$topic->consumeStart(0, RD_KAFKA_OFFSET_BEGINNING);
while (true) {
// 第一个参数是分区号
// 第二个参数是超时时间
$msg = $topic->consume(0, 1000);
if ($msg->err) {
echo $msg->errstr(), "n";
break;
} else {
echo $msg->payload, "n";
}
}
高级方式 (High level)
这种方式可以指定消费组,一个消费组内,一个consumer 进程只能读取一个分区,
<?php
$conf = new RdKafkaConf();
// Set a rebalance callback to log parti