您的位置:首页 > 运维架构 > Linux

centos php Zookeeper kafka扩展安装

2017-09-10 17:02 711 查看
如题,系统架构升级引入消息机制,php 安装还是挺麻烦的,网上各种文章有的东拼西凑这里记录下来做个备忘,有需要的同学可以自行参考安装亲测可行

1 zookeeper扩展安装

  1.安装zookeeper 我之前有一篇是写的zookeeper与kafka的安装,如果有问题的可以找出来看看

  2.wget http://pecl.php.net/get/zookeeper-0.2.2.tgz
  3.tar -zxvf zookeeper-0.2.2.tgz cd zookeeper-0.2.2

  4./usr/local/php/bin/phpize

  5../configure --with-php-config=/usr/local/php/bin/php-config --with-libzookeeper-dir=/var/zookeeper-3.3.6/

    这里很可能会有错误 Can't find zookeeper headers under因为我是直接下载的包运行的,默认是没有这个lib的 需要自己编译安装,编译安装如下

    1.cd /var/zookeeper-3.3.6//src/c

    2../configure -prefix= /var/zookeeper-3.3.6

    3.make & make install

    编译完成之后会在zookeeper 下面多出一个lib文件

  6.make &make install

    安装完成之后最后会有提示成功,在extensions会多出这个zookeeper.so文件这个时候才代表安装扩展完成

2.kafka 扩展

  这个扩展查了些资料以前有的东西已经没法安装成功了

  选一个我安装成功的,有需要的可以自行安装

  1.先安装一个lib库

    1.wget https://github.com/edenhill/librdkafka/archive/master.zip  
    2.mv master.zip librdkafka-master.zip

    3.unzip librdkafka-master.zip

    4.cd librdkafka-master

    5../configure

    6.make &make install

  2.安装扩展

    1.git clone https://github.com/arnaud-lb/php-rdkafka.git
    2.cd php-rdkafka

    3./usr/local/php/bin/phpize

    4../configure

    5.make all -j 5

    6.make &make install

安装完成之后在扩展文件夹里查看是否已经存在这两个so 文件

修改php.ini

  添加如下:extension="/usr/local/php/lib/php/extensions/no-debug-zts-20151226/rdkafka.so"

        extension="/usr/local/php/lib/php/extensions/no-debug-zts-20151226/zookeeper.so"

重启httpd 在phpinfo里就可以看到

 

  简单例子:

    1.php-kafka

$rk = new \RdKafka\Producer();

$rk->addBrokers("127.0.0.1");
$topic = $rk->newTopic("Order");
$topic->produce(RD_KAFKA_PARTITION_UA, 0, "Message payload---------");


     2.php-zookeeper:

    $zookeeper=new \Zookeeper('127.0.0.1:2181');
$path="/trainFront/Service/OrderService";
if($zookeeper->exists($path))
{
$value = $zookeeper->getChildren($path);
var_dump($value);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: