php5.X連線kafka
kafka擴充套件:https://github.com/arnaud-lb/php-rdkafka
測試版本:php-5.5.25/30
安裝:
1、先安裝librdkafka:
git clone https://github.com/edenhill/librdkafka/
cd librdkafka
./configure && make && make install
2、安裝php-rdkafka擴充套件:
git clone https://github.com/arnaud-lb/php-rdkafka
cd php-rdkafka
phpize && ./configure --with-php-config=/usr/local/php/bin/php-config && make all -j 5 && make install
3、測試程式碼,用的是他的程式碼改了改,加了些sasl鑑權的東西:
<?php
$conf = new RdKafka\Conf();
// Set the group id. This is required when storing offsets on the broker
$conf->set('group.id', 'vcs');
$conf->set('security.protocol','SASL_PLAINTEXT');
$conf->set('sasl.mechanism','PLAIN');
$conf->set('sasl.username','hello');
$conf->set('sasl.password','world');
$rk = new RdKafka\Consumer($conf);
$rk->addBrokers("mq.cloud.com:9012");
var_dump($rk);
//$conf->set('group.id', 'vcs');
$topicConf = new RdKafka\TopicConf();
$topicConf->set('auto.commit.interval.ms', 100);
// Set the offset store method to 'file'
$topicConf->set('offset.store.method', 'file');
$topicConf->set('offset.store.path', sys_get_temp_dir());
// Alternatively, set the offset store method to 'broker'
// $topicConf->set('offset.store.method', 'broker');
// Set where to start consuming messages when there is no initial offset in
// offset store or the desired offset is out of range.
// 'smallest': start from the beginning
$topicConf->set('auto.offset.reset', 'smallest');
$topic = $rk->newTopic("tv.tpvcs.setvcs", $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 "No more messages; will wait for more\n";
break;
case RD_KAFKA_RESP_ERR__TIMED_OUT:
echo "Timed out\n";
break;
default:
throw new \Exception($message->errstr(), $message->err);
break;
}
}
執行就好
相關文章
- php連線kafkaPHPKafka
- Scrapy Kafka的連線使用Kafka
- flink連線消費kafkaKafka
- Linux系統中KafKa安裝和使用方法 java客戶端連線kafkaLinuxKafkaJava客戶端
- 外網無法連線Kafka叢集(報錯:NoBrokersAvailable)KafkaAI
- Java Api Consumer 連線啟用Kerberos認證的KafkaJavaAPIROSKafka
- 例項解析外連線 內連線 自連線 全連線
- SQL的四種連線:內連線 左外連線 右外連線 全連線SQL
- MYSQL語法:左連線、右連線、內連線、全外連線MySql
- 內連線、外連線
- 連線和半連線
- 左連線,右連線
- 深入理解SQL的四種連線-左外連線、右外連線、內連線、全連線SQL
- Oracle內連線、外連線、右外連線、全外連線小總結Oracle
- 資料庫外連線,自然連線,內連線,條件連線,等值連線關係及詳解資料庫
- Socket連線和Http連線HTTP
- 長連線和短連線
- Oracle(+)連線與Join連線Oracle
- 【SQL】表連線 --半連線SQL
- Oracle左連線,右連線Oracle
- 左連線與右連線
- 左連線和右連線
- 長連線與短連線
- MySQL筆記3——內連線/外連線、多表連線MySql筆記
- 【SQL】Oracle的內連線、左外連線、右外連線及全外連線SQLOracle
- Oracle 表連線方式詳解(外連結、內連線、自連線)Oracle
- PHP特性整合(PHP5.X到PHP7.1.x)PHP
- 深入淺出SQL之左連線、右連線和全連線SQL
- VNC連線,VNC如何連線WindowsVNCWindows
- sql 內連線和外連線SQL
- ORACLE 半連線與反連線Oracle
- 外連線與連線順序
- 內連線、外連線總結
- SQL SERVER 自連線、外連線SQLServer
- Python連線Redis連線配置PythonRedis
- 連結檔案 (硬連線 與 符號連線)符號
- mysql 左連線,右連線,內連結,exists等MySql
- Http持久連線與HttpClient連線池HTTPclient