• 技术文章 >后端开发 >PHP问题

    rdkafka php 如何安装

    藏色散人藏色散人2021-05-13 09:14:44原创303

    php rdkafka安装的方法:首先下载安装librdkafka;然后安装php-rdkafka扩展;最后在php.ini中写入“extension=rdkafka.so”即可。

    本文操作环境:windows7系统、php7.0版,DELL G3电脑

    php-rdkafka 扩展安装

    php有两种方式调用kafka

    文档地址: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


    850adb0f066f01d9a9c6f3cf43b72b3.png




    80897a183cfe55ce4a93932fc19fd71.png

    文档地址: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;
        }
    }
    
    ?>


    3ee570a8a21a713585ef0bb099ca18c.png


    推荐学习:《PHP视频教程

    以上就是rdkafka php 如何安装的详细内容,更多请关注php中文网其它相关文章!

    声明:本文原创发布php中文网,转载请注明出处,感谢您的尊重!如有疑问,请联系admin@php.cn处理
    专题推荐:php rdkafka
    上一篇:php调用mysql步骤 下一篇:php cli 中文乱码怎么办
    大前端线上培训班

    相关文章推荐

    • php curd是什么意思• php如何从数组中移除元素• 介绍thinkphp lock锁的使用和例子• php引用文件有几种方式• php调用mysql步骤

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网