php-kafka-consumer 主要是对 php_rdkafka 的 consumer 的 API 进行一层封装,增加了原程序中所没有的与 zookeeper 交互的功能。在此基础上实现了 rebalance 功能以及 group 功能。 经过简单的压力测试,单个进程的消费能力能达到每秒钟7.8W条,压测详细内容见压力测试。
php_zookeeper
php_rdkafka (建议使用1.0.0版本)
librdkafka(建议使用0.9.1版本)
<?php include 'consumer.php'; function call_back_func($msg) { echo "$msg->payload\n"; } function handle_error_call_back($msg) { echo $msg->errstr(); } $consumer = New Consumer("localhost:2181"); $consumer->setGroupId("group-test"); $consumer->setTopic("topic-test"); $consumer->setOffsetAutoReset(Consumer::smallest); $consumer->setErrHandler("handle_error_call_back"); try { $consumer->start("echo_message"); } catch(Exception $e) { printf("error: %s\n", $e->getMessage()); }