【linux-centos】php-rdkafka扩展安装
2021/6/7 7:24:07
本文主要是介绍【linux-centos】php-rdkafka扩展安装,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
安装php-rdkafka 扩展
***先安装librdkafka
>>>源码方式安装
git clone https://github.com/edenhill/librdkafka
librdkafka-master.zip
unzip librdkafka-master.zip
cd librdkafka-master
./configure make make install
>>>yum方式安装
yum install librdkafka-devel
yum install libtool
***下载扩展包:
git clone https://github.com/arnaud-lb/php-rdkafka.git
php-rdkafka-5.x.zip
unzip php-rdkafka-5.x.zip
cd php-rdkafka-5.x
phpize
./configure
make && make install
可能会报错,configure: error: Please reinstall the rdkafka distribution
说明没安装librdkafka
vim /etc/php.ini
extension=rdkafka.so
php -m | grep rdkafka 查看是否安装成功
***使用kafka扩展
生产者:
$objRdKafka = new RdKafka\Producer();
$objRdKafka->setLogLevel(LOG_DEBUG);
$objRdKafka->addBrokers("localhost:9092");
$oObjTopic = $objRdKafka->newTopic("test");
// 从终端接收输入
$oInputHandler = fopen('php://stdin', 'r');
while (true) {
echo "\nEnter messages:\n";
$sMsg = trim(fgets($oInputHandler));
// 空消息意味着退出
if (empty($sMsg)) {
break;
}
// 发送消息
$oObjTopic->produce(RD_KAFKA_PARTITION_UA, 0, $sMsg);
}
echo "done\n";
消费者:
$objRdKafka = new RdKafka\Consumer();
$objRdKafka->setLogLevel(LOG_DEBUG);
$objRdKafka->addBrokers("localhost:9092");
$oObjTopic = $objRdKafka->newTopic("test");
/**
* consumeStart
* 第一个参数标识分区,生产者是往分区0发送的消息,这里也从分区0拉取消息
* 第二个参数标识从什么位置开始拉取消息,可选值为
* RD_KAFKA_OFFSET_BEGINNING : 从开始拉取消息
* RD_KAFKA_OFFSET_END : 从当前位置开始拉取消息
* RD_KAFKA_OFFSET_STORED : 猜测跟RD_KAFKA_OFFSET_END一样
*/
$oObjTopic->consumeStart(0, RD_KAFKA_OFFSET_END);
while (true) {
// 第一个参数是分区,第二个参数是超时时间
$oMsg = $oObjTopic->consume(0, 1000);
// 没拉取到消息时,返回NULL
if (!$oMsg) {
usleep(10000);
continue;
}
if ($oMsg->err) {
echo $msg->errstr(), "\n";
break;
} else {
echo $oMsg->payload, "\n";
}
}
先启动生产,再启动消费会造成数据丢失,不在再队列中存着
这篇关于【linux-centos】php-rdkafka扩展安装的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-01用php和mysql写无限分类,有哪几种方法-icode9专业技术文章分享
- 2024-10-31php数据分表导出时部分数据无法导出什么原因-icode9专业技术文章分享
- 2024-10-30有经验的 PHP 开发者学习一门新的编程语言,有哪些推荐的有前景的语言-icode9专业技术文章分享
- 2024-10-21php 检测图片是否篡改过-icode9专业技术文章分享
- 2024-10-20fruitcake/php-cors 该怎么使用-icode9专业技术文章分享
- 2024-10-18PHP7.1可以使用哪个版本的swoole-icode9专业技术文章分享
- 2024-10-17php8 执行php -v提示 command not found是什么原因?-icode9专业技术文章分享
- 2024-10-17nginx 怎么配置 php?-icode9专业技术文章分享
- 2024-09-28怎么把PHP程序打包?-icode9专业技术文章分享
- 2024-09-28怎么用Phar打包PHP程序?-icode9专业技术文章分享