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;
}
}
執行就好
相關文章
- flink連線消費kafkaKafka
- 在容器外部連線kafka失敗Kafka
- Java Api Consumer 連線啟用Kerberos認證的KafkaJavaAPIROSKafka
- Linux系統中KafKa安裝和使用方法 java客戶端連線kafkaLinuxKafkaJava客戶端
- kafka線上事故Kafka
- 內連線、左連線、右連線
- MYSQL語法:左連線、右連線、內連線、全外連線MySql
- Kafka 線上效能調優Kafka
- 長連線和短連線
- Socket連線和Http連線HTTP
- MySQL筆記3——內連線/外連線、多表連線MySql筆記
- mysql INNER JOIN、LEFT JOIN、RIGHT JOIN;內連線(等值連線)、左連線、右連線MySql
- VNC連線,VNC如何連線WindowsVNCWindows
- sql 內連線和外連線SQL
- http的長連線和短連線HTTP
- Http持久連線與HttpClient連線池HTTPclient
- 長連線和短連線的使用
- 連線池和連線數詳解
- Oracle左外連線、右外連線、完全外連線以及(+)號用法Oracle
- 關於面向連線與面向無連線
- 3.DQL資料查詢語言(內連線,外連線,自連線)
- 連線池
- websocket連線Web
- tcp 連線TCP
- JAVA之長連線、短連線和心跳包Java
- python 連線 mongo 資料庫連線超時PythonGo資料庫
- 連線zk 報錯連線不上hbase jdbcJDBC
- python 怎麼連線 sql server,不是連線 mysqlPythonServerMySql
- scrapy軟連線失效和pip軟連線失效
- 連線mysql時提示is not allowed to connect不允許連線MySql
- 【問題記錄】—SignalR連線斷線重連SignalR
- HTTP非持續連線和持續連線HTTP
- 在Docker環境下的kafka部署之二:SSL連線及內外網分別訪問DockerKafka
- MYSQL學習筆記23: 多表查詢(自連線內連線+左右外連線)MySql筆記
- 印表機離線了怎麼連線 印表機離線的連線方法
- github-tchiotludo/kafkahq:Kafka GUI管理介面,提供Kafka Topic主題、主題資料、使用者組、模式登錄檔、連線等更多資訊...GithubKafkaGUI模式
- Laravel redis 連不同的連線LaravelRedis
- 聯想無線滑鼠怎麼連線電腦連線藍芽藍芽