PHP安裝kafka擴展

安裝

安裝librdkafka

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

wget https://github.com/edenhill/librdkafka/archive/v0.9.4.tar.gz -O librdkafka-0.9.4.tar.gz
tar -zxvf librdkafka-0.9.4.tar.gz
cd librdkafka-0.9.4
yum install gcc-c++
./configure
make
make install

安裝php-rdkafka

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

wget https://github.com/arnaud-lb/php-rdkafka/archive/3.0.1.tar.gz -O php-rdkafka-3.0.1.tar.gz
tar -zxvf php-rdkafka-3.0.1.tar.gz
cd php-rdkafka-3.0.1
phpize
./configure --with-php-config=php-config
make
make install

配置php.ini並重啓php-fpm

在php.ini中添加

extension=rdkafka.so

PHP消費

參考https://github.com/arnaud-lb/php-rdkafka

$rk = new RdKafka\Consumer();
$rk->setLogLevel(LOG_DEBUG);
$rk->addBrokers("127.0.0.1");

$topic = $rk->newTopic("test");
$topic->consumeStart(0, RD_KAFKA_OFFSET_BEGINNING);

while (true) {
    // The first argument is the partition (again).
    // The second argument is the timeout.
    $msg = $topic->consume(0, 1000);
    if($msg==NULL){
        sleep(1);
    }
    else{
        echo '#'.$msg->payload."#\n";
    }
}

參考

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章