• 消息中间件Kafaka


    Centos版本:Centos6.4,PHP版本:PHP7。

    在上一篇文章中使用IP为192.168.9.154的机器安装并开启了Kafka进行了简单测试,充当了Kafka服务器。

    本篇文章新开启一台IP为192.16.9.157的机器给PHP开启扩展。

    找到github的扩展下载地址,这里是php-rdkafka,虽然php有一个扩展是php-kafka,但是php-rdkafka要比php-kafka强大。

    https://github.com/arnaud-lb/php-rdkafka  //php-rdkafka下载地址
    

      在安装php-rdkafka之前需要给系统安装一个库,librdkafka。

    https://github.com/edenhill/librdkafka  //librdkafka地址
    

      两个包都下载完之后,首先进行librdkafka的解压安装

    # unzip librdkafka-master.zip 
    # cd librdkafka-master
    # ./configure
    # make && make install
    

      接下来编译安装php-rdkafka

    unzip php-rdkafka-master.zip
    # cd php-rdkafka-master
    # phpize
    # ./configure --with-php-config=/usr/local/php/bin/php-config 
    # make && make install
    

      

    Installing shared extensions:     /usr/local/php/lib/php/extensions/no-debug-non-zts-20170718/  //so地址
    # vim /usr/local/php/etc/php.ini   //添加下面代码
    extension=/usr/local/php/lib/php/extensions/no-debug-non-zts-20170718/rdkafka.so
    # service php-fpm restart  //重启PHP
    

      

    #查看扩展是否生效
    php -m | grep kafka

    OK

    hp操作kafka

    运行前先开启我们的zookeeper和kafka 上篇文章有如何开启

      1. 运行producer
        kafka默认端口9092

        vim producer.php

     <?php
        $rk = new RdKafkaProducer();
        $rk->setLogLevel(LOG_DEBUG);
        $rk->addBrokers("ip:9092");       
        $topic = $rk->newTopic("test");
        $topic->produce(RD_KAFKA_PARTITION_UA, 0, "要发送的消息");
    

      运行consumer
    vim consumer.php

    <?php
        $rk = new RdKafkaConsumer();
        $rk->setLogLevel(LOG_DEBUG);
        $rk->addBrokers("ip");
        $topic = $rk->newTopic("test");
        $topic->consumeStart(0, RD_KAFKA_OFFSET_BEGINNING);
        while(true){
            sleep(1);
            $msg = $topic->consume(0, 1000);
            if ($msg) {
                echo $msg->payload, "
    ";
            }          
        }    
    

     开启两个窗口一个运行consumer 一个运行producer

    php consumer.php
    php producer.php

    会发现我们已经简单的会使用kafka了。

  • 相关阅读:
    服务方式加载卸载NT驱动函数集
    《Windows核心编程》学习笔记(12)– 虚拟内存
    《Windows核心编程》学习笔记(14)– 堆
    数据库连接错误:提示TCP端口1433,sql server 2008 Connection refused:connect
    Windows驱动开发技术详解笔记
    Struts2文件上传的大小限制问题
    pragma comment的使用 pragma预处理指令详解
    解决FastCGI Error Error Number: 2147467259 (0x80004005). 和 Error Number: 1073741819 (0xc0000005).
    PHP中的日期处理
    mysql远程连接10061错误
  • 原文地址:https://www.cnblogs.com/yszr/p/11870724.html
Copyright © 2020-2023  润新知