这里提供的demo只是简单的打印了msg信息,大家可以按需调整。
class EchoKafkaConsumerLow extends KafkaConsumerLowService
{
function handleLogic($msg)
{
print_r($msg);
}
}
class EchoKafkaConsumerHigh extends KafkaConsumerHighService
{
function handleLogic($msg)
{
print_r($msg);
}
}
客户端调用
//topic为test,kafka server的IP为127.0.0.1
$s = new EchoKafkaConsumerLow("test","127.0.0.1");
$s->exec();
消息生成端(通过kafka的cli工具创建了一个test的topic,这个topic创建了100个partition)
$rk = new RdKafka\Producer();
$rk->setLogLevel(LOG_DEBUG);
$rk->addBrokers("127.0.0.1");
$topic = $rk->newTopic("test");
for($j=0;$j<100;$j++)
{
$topic->produce($j,0,str_repeat("Message $j",1),str_repeat("Message $j",1));
while ($rk->getOutQLen() > 0) {
$rk->poll(1);
}
}