下载 https://github.com/nmred/kafka-php.git
生产者// 连接服务
$produce = \Kafka\Produce::getInstance('120.27.***.**:****,120.27.***.**:****,120.27.***.**:****', 6000);
// 获取topic test-2 下可用的分区(test-2 下有2个分区)
$partitions = $produce->getAvailablePartitions('test-2');
var_dump($partitions);
$produce->setRequireAck(-1);
// 在分区1中 添加数据
$produce->setMessages('test-2', 0, array(
'hello world 1',
'hello world 2',
));
// 在分区2中 添加数据
$produce->setMessages('test-2', 1, array(
'hello world 3',
'hello world 4',
));
// 插入
$result = $produce->send();
var_dump($result);
消费者// 连接服务
$consumer = \Kafka\Consumer::getInstance('120.27.***.**:****,120.27.***.**:****,120.27.***.**:****');
// 设置访问用户组的名称(可以设置不同的用户组访问不同的分区内的消息)
$group = 'group2';
$consumer->setGroup($group);
$consumer->setFromOffset(true);
//$consumer->setTopic('test-2'); //直接访问topic下分区内的所有消息
// 访问topic test-2 下的分区1
$consumer->setPartition('test-2', 1);
$consumer->setMaxBytes(102400);
$result = $consumer->fetch();
foreach ($result as $topicName => $partition) {
foreach ($partition as $partId => $messageSet) {
foreach ($messageSet as $message) {
var_dump((string)$message);
}
}
}