安静
PHP技术博客

160728 KAFKA在PHP中的应用(二)

PHP和KAFKA通信有2种版本

一种是安装 libkafka,然后再安装PHP扩展 如php-kafka,php-rdkafka
另外一种是 安装zookeeperPHP扩展,通过项目与zookeeper通信与kafka通信直接使用socket方式.

PHP使用libkafka与Kafka交互

安装php55

brew install php55

安装php扩展 rdakafa

brew install php55-rdkafka
/usr/local/Cellar/php55/5.5.34/bin/php -i | grep kafka

producer.php

<?php
$rk = new RdKafka\Producer();
$rk->setLogLevel(LOG_DEBUG);
$rk->addBrokers("localhost");
$topic = $rk->newTopic("test");
$topic->produce(RD_KAFKA_PARTITION_UA, 0, "Message payload");

consumer.php

<?php
$rk = new RdKafka\Consumer();
$rk->setLogLevel(LOG_DEBUG);
$rk->addBrokers("localhost");
$topic = $rk->newTopic("test");
$topic->consumeStart(0, RD_KAFKA_OFFSET_BEGINNING);
$i=0;
while (true) {
// The first argument is the partition (again).
// The second argument is the timeout.
$msg = $topic->consume(0, 1000);
if ($msg->err) {
// echo $msg->errstr(), "\n";
break;
} else {
echo ajLog("offset:\t".$i."\tmsg:\t".$msg->payload), "\n";
}
$i++;
}
function ajLog($str,$show=true){
echo date("Y-m-d H:i:s")."\t".$str.PHP_EOL;
}

PHP使用Zookeeper扩展与Kafka交互

支持项目:

https://github.com/nmred/kafka-php

cd /usr/local/src/
wget http://mirror.bit.edu.cn/apache/zookeeper/zookeeper-3.4.5/zookeeper-3.4.5.tar.gz
tar -xf zookeeper-3.4.5.tar.gz
cd zookeeper-3.4.5/src/c
./configure –prefix=/usr/local/zookeeper/zookeeper-3.4.5/
make && make install
vim /usr/local/php/etc/php.ini
extension=zookeeper.so
赞(0) 打赏
未经允许不得转载:AJ's Blog » 160728 KAFKA在PHP中的应用(二)
分享到: 更多 (0)

评论 3

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
  1. #1

    很实用,谢谢分享

    工控资料窝2年前 (2016-09-08)
  2. #2

    怎么高级的PHP还真没用过。

    夏日博客2年前 (2016-10-18)
  3. #3

    很高大上的PHP教程。PHP还是可以做很多事情的。

    PHP程序员雷雪松2年前 (2016-12-28)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏