zoukankan      html  css  js  c++  java
  • centos php Zookeeper kafka扩展安装

    如题,系统架构升级引入消息机制,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 RdKafkaProducer();
        
            $rk->addBrokers("127.0.0.1");
            $topic = $rk->newTopic("Order");
            $topic->produce(RD_KAFKA_PARTITION_UA, 0, "Message payload---------");

         2.php-zookeeper:

        $zookeeper=new ookeeper('127.0.0.1:2181');
            $path="/trainFront/Service/OrderService";
            if($zookeeper->exists($path))
            {
                 $value = $zookeeper->getChildren($path);
                 var_dump($value);
            }
  • 相关阅读:
    在阿里云centos7.6上部署vue.js2.6前端应用
    gRPC
    Docker
    ES6、ES7、ES8、ES9、ES10
    HTTPS工作原理 HTTP协议数据结构分析 HTTP和HTTPS协议的不同之处
    SpringBean的工作原理
    Nginx负载均衡高可用---架构
    集群的负载策略
    redis 和 memcached的区别
    Django的基础教程
  • 原文地址:https://www.cnblogs.com/EncryptingLife/p/7501515.html
Copyright © 2011-2022 走看看