PHP安装Kafka扩展

Posted 无需

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP安装Kafka扩展相关的知识,希望对你有一定的参考价值。

Kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者在网站中的所有动作流数据;本篇文章用于安装kafka的php扩展,已经过验证,并给出consumer端示例代码,producer代码自行实现;


相关名词:

Broker

    Kafka集群包含一个或多个服务器,这种服务器被称为broker

Topic

    每条发布到Kafka集群的消息都有一个类别,这个类别被称为Topic。(物理上不同Topic的消息分开存储,逻辑上一个Topic的消息虽然保存于一个或多个broker上但用户只需指定消息的Topic即可生产或消费数据而不必关心数据存于何处)

Partition

    Partition是物理上的概念,每个Topic包含一个或多个Partition.

Producer

    负责发布消息到Kafka broker

Consumer

    消息消费者,向Kafka broker读取消息的客户端。

Consumer Group

    每个Consumer属于一个特定的Consumer Group(可为每个Consumer指定group name,若不指定group name则属于默认的group)。


安装Librdkafka
PHP安装Kafka扩展
1. wget https://github.com/edenhill/librdkafka/archive/v0.9.4.tar.gz -O librdkafka-0.9.4.tar.gz2. tar -zxvf librdkafka-0.9.4.tar.gz3. cd librdkafka-0.9.44. yum install gcc-c++5. ./configure6. make7. make install


安装Php-Rdkafka



1. wget https://github.com/arnaud-lb/php-rdkafka/archive/3.0.1.tar.gz -O php-rdkafka-3.0.1.tar.gz2. tar -zxvf php-rdkafka-3.0.1.tar.gz3. cd php-rdkafka-3.0.14. phpize5. ./configure --with-php-config=php-config6. make7. make install
配置php.ini并重启php-fpm在php.ini中添加extension=rdkafka.so

PHP消费


参考https://github.com/arnaud-lb/php-rdkafka

$rk = new RdKafka\Consumer(); $rk->setLogLevel(LOG_DEBUG); $rk->addBrokers("127.0.0.1");  $topic = $rk->newTopic("test"); $topic->consumeStart(0, RD_KAFKA_OFFSET_BEGINNING);
while (true) { // The first argument is the partition (again). // The second argument is the timeout. $msg = $topic->consume(0, 1000); if($msg==NULL){ sleep(1); } else{ echo '#'.$msg->payload."#\n"; } }


以上是关于PHP安装Kafka扩展的主要内容,如果未能解决你的问题,请参考以下文章

linux 下安装 php kafka 扩展

php 安装kafka扩展(ubuntu)

Ubuntu16.04安装php kafka扩展

php环境下使用kafka

消息中间件Kafaka - PHP操作使用Kafka

Laravel基本使用