美文网首页
php-rdkafka 扩展安装

php-rdkafka 扩展安装

作者: 骑着大象去上班 | 来源:发表于2018-09-25 15:15 被阅读0次

php有两种方式调用kafka

一、php-rdkafka

文档地址:https://arnaud-lb.github.io/php-rdkafka/phpdoc/book.rdkafka.html
rdkafka安装需要依赖librdkafka所以我们需要先安装librdkafka
下载地址http://pecl.php.net/package/rdkafka

git clone https://github.com/edenhill/librdkafka.git
cd librdkafka
./configure
make && make install

安装php-rdkafka扩展

git clone https://github.com/arnaud-lb/php-rdkafka.git
cd php-rdkafka
phpize
./configure --with-php-config=/usr/local/php7.0/bin/php-config
make && make install

然后在php.ini写入

extension = rdkafka.so
image.png
image.png
二、kafka-php 扩展包

文档地址:https://github.com/weiboad/kafka-php

三、简单示例

生成者

<?php

$rk = new RdKafka\Producer();
$rk->setLogLevel(LOG_DEBUG);
$rk->addBrokers("192.168.2.152");

$topic = $rk->newTopic("shop");

for ($i = 0; $i < 10; $i++) {
    $topic->produce(RD_KAFKA_PARTITION_UA, 0, "发送信息: $i");
    $rk->poll(0);
}

while ($rk->getOutQLen() > 0) {
    $rk->poll(50);
}

?>

消费者

<?php

$conf = new RdKafka\Conf();

$conf->set('group.id', 'myConsumerGroup');

$rk = new RdKafka\Consumer($conf);
$rk->addBrokers("192.168.2.150:9092");

$topicConf = new RdKafka\TopicConf();
$topicConf->set('auto.commit.interval.ms', 100);
$topicConf->set('offset.store.method', 'file');
$topicConf->set('offset.store.path', sys_get_temp_dir());
$topicConf->set('auto.offset.reset', 'smallest');

$topic = $rk->newTopic("shop", $topicConf);

// Start consuming partition 0
$topic->consumeStart(0, RD_KAFKA_OFFSET_STORED);

while (true) {
    $message = $topic->consume(0, 120*10000);
    switch ($message->err) {
        case RD_KAFKA_RESP_ERR_NO_ERROR:
        //没有错误打印信息
            var_dump($message);
            break;
        case RD_KAFKA_RESP_ERR__PARTITION_EOF:
            echo "等待接收信息\n";
            break;
        case RD_KAFKA_RESP_ERR__TIMED_OUT:
            echo "超时\n";
            break;
        default:
            throw new \Exception($message->errstr(), $message->err);
            break;
    }
}

?>
image.png

相关文章

  • php 使用kafka

    准备工作 安装librdkafka 库 安装php-rdkafka 扩展 编码实现 生产者 代码实现 检验发送是否...

  • php-rdkafka 扩展安装

    php有两种方式调用kafka 一、php-rdkafka 文档地址:https://arnaud-lb.gith...

  • 2021-01-22 php 安装与卸载

    卸载 安装 安装常用扩展 安装其他扩展(按需安装)

  • VSCode - Php debug调试

    安装 VSCode Php Debug 扩展 运行 VSCode 打开扩展 输入 PHP Debug 安装 安装 ...

  • PHP扩展模块安装

    PHP扩展模块安装 PHP扩展模块安装 扩展apache rewrite教程 http://coffeelet.b...

  • php 得 pecl工具安装。。。。

    安装pecl 安装php扩展 查询相关扩展 安装相关扩展 设置全局php.ini,设置后可以自动添加.

  • 在laravel中使用mongodb

    环境准备 安装mongodb mongodb安装教程 安装php-mongodb扩展 php-mongodb扩展安...

  • 【Linux】phpize安装php扩展

    安装各扩展,需要进入php源码目录。安装完成后,重启apache,执行 可以查看扩展是否安装成功。 一.GD扩展 ...

  • linux下安装Exif扩展笔记!

    没安装Exif扩展,这个PHP安装不支持读取Exif数据。 宝塔上直接安装很方便 linux安装Exif扩展 安装...

  • ubuntu 安装php-curl扩展

    我们知道,ubuntu安装了php后,有很多扩展需要按需求手动安装。这里讲解下如何安装curl扩展。当缺少该扩展,...

网友评论

      本文标题:php-rdkafka 扩展安装

      本文链接:https://www.haomeiwen.com/subject/ptlloftx.html