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)。
1. wget https://github.com/edenhill/librdkafka/archive/v0.9.4.tar.gz -O librdkafka-0.9.4.tar.gz
2. tar -zxvf librdkafka-0.9.4.tar.gz
3. cd librdkafka-0.9.4
4. yum install gcc-c++
5. ./configure
6. make
7. 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.gz
2. tar -zxvf php-rdkafka-3.0.1.tar.gz
3. cd php-rdkafka-3.0.1
4. phpize
5. ./configure --with-php-config=php-config
6. make
7. 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扩展的主要内容,如果未能解决你的问题,请参考以下文章