PHP Kafka client ------ php-rdkafka

本文档详细介绍了如何在Linux环境下安装librdkafka和php-rdkafka扩展,包括下载源码、编译安装、配置php.ini以及运行代码示例。确保你已安装PHP,然后依次执行解压、配置、编译、安装步骤。在php.ini中添加扩展并重启服务后,通过示例代码测试PHP连接Kafka的能力。
摘要由CSDN通过智能技术生成

 安装PHP参考:https://blog.csdn.net/abcdu1/article/details/112317578

1.安装librdkafka

(1)下载

https://github.com/edenhill/librdkafka

(2)解压配置

tar -zxvf librdkafka.tar.gz
cd librdkafka/
./configure

(3)编译安装

make && make install

 

2.安装php-rdkafka

(1)下载

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

(2)解压配置

必须安装PHP 才可以执行  phpize命令,安装PHP参考

tar -zxvf  php-rdkafka.tar.gz
cd php-rdkafka/
phpize
./configure

(3)编译安装

make all -j 5
sudo make install

(4)配置php.ini 文件

打开php.ini ,添加 

extension=rdkafka.so

(5)安装测试

php -i | grep rdkafka

 

3.代码示例运行

(1)代码示例

新建文件producer.php , 将下面代码复制进去,修改如下两行:

$conf->set('metadata.broker.list', 'localhost:9092');     //修改为自己建立的broker地址

$topic = $producer->newTopic("test");                       //修改为自己建立的topic

<?php

$conf = new RdKafka\Conf();
$conf->set('metadata.broker.list', 'localhost:9092');

//If you need to produce exactly once and want to keep the original produce order, uncomment the line below
//$conf->set('enable.idempotence', 'true');

$producer = new RdKafka\Producer($conf);

$topic = $producer->newTopic("test");

for ($i = 0; $i < 10; $i++) {
    $topic->produce(RD_KAFKA_PARTITION_UA, 0, "Message $i");
    $producer->poll(0);
}

for ($flushRetries = 0; $flushRetries < 10; $flushRetries++) {
    $result = $producer->flush(10000);
    if (RD_KAFKA_RESP_ERR_NO_ERROR === $result) {
        break;
    }
}

if (RD_KAFKA_RESP_ERR_NO_ERROR !== $result) {
    throw new \RuntimeException('Was unable to flush, messages might be lost!');
}

?>

(2)运行测试

 保存文件后,运行

php producer.php 

可以看到消息推入到  kafka  对应topic中。

 

参考:

https://github.com/edenhill/librdkafka

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

https://arnaud.le-blanc.net/php-rdkafka-doc/phpdoc/rdkafka.examples-producer.html

https://arnaud.le-blanc.net/php-rdkafka-doc/phpdoc/rdkafka.installation.manual.html

https://arnaud.le-blanc.net/php-rdkafka-doc/phpdoc/rdkafka.installation.windows.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值