ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

消息中间件Kafaka - PHP操作使用Kafka

2019-11-16 10:02:31  阅读:568  来源: 互联网

标签:librdkafka Kafka topic Kafaka rdkafka 消息中间件 kafka php local


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

  

OK

 

hp操作kafka

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

    1. 运行producer
      kafka默认端口9092

      vim producer.php

 <?php
    $rk = new RdKafka\Producer();
    $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 RdKafka\Consumer();
    $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, "\n";
        }          
    }    

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

php consumer.php
php producer.php

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

 

标签:librdkafka,Kafka,topic,Kafaka,rdkafka,消息中间件,kafka,php,local
来源: https://www.cnblogs.com/yszr/p/11870724.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有