首頁 >後端開發 >PHP問題 >rdkafka php 如何安裝

rdkafka php 如何安裝

藏色散人
藏色散人原創
2021-05-13 09:14:442905瀏覽

php rdkafka安裝的方法:先下載安裝librdkafka;然後安裝php-rdkafka擴充功能;最後在php.ini寫入「extension=rdkafka.so」。

rdkafka php 如何安裝

本文操作環境:windows7系統、php7.0版,DELL G3電腦

php-rdkafka 擴充安裝

#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


rdkafka php 如何安裝




rdkafka php 如何安裝

rdkafka php 如何安裝

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 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;
    }
}

?>

rdkafka php 如何安裝


############################## ####推薦學習:《###PHP影片教學###》###

以上是rdkafka php 如何安裝的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn