首頁  >  文章  >  後端開發  >  使用 PHP 編寫的 Kafka 用戶端

使用 PHP 編寫的 Kafka 用戶端

小云云
小云云原創
2017-12-05 11:05:172387瀏覽

Kafka-php 使用純粹的PHP 編寫的kafka 用戶端,目前支援0.8.x 以上版本的Kafka,該專案v0.2.x 和v0.1.x 不相容,如果使用原有的v0.1 .x 的可以參考文件Kafka PHP v0.1.x Document , 不過建議切換到v0.2.x 上。 v0.2.x 使用 PHP 異步執行的方式來和kafka broker 交互,較 v0.1.x 更加穩定高效, 由於使用 PHP 語言編寫所以不用編譯任何的擴展就可以使用,降低了接入與維護成本。

安裝環境需求

  • PHP 版本大於5.5

  • Kafka Server 版本大於0.8.0

  • #消費模組Kafka Server 版本需要大於0.9.0

#Installation

使用Composer 安裝

新增composer 依賴nmred/kafka -php 到專案的composer.json 檔案即可,如:

{
	"require": {
		"nmred/kafka-php": "0.2.*"
	}
}

 

Produce

<?php
require &#39;../vendor/autoload.php&#39;;
date_default_timezone_set(&#39;PRC&#39;);
use Monolog\Logger;
use Monolog\Handler\StdoutHandler;
// Create the logger
$logger = new Logger(&#39;my_logger&#39;);
// Now add some handlers
$logger->pushHandler(new StdoutHandler());

// 设置生产相关配置,具体配置参数见 [Configuration](Configuration.md)
$config = \Kafka\ProducerConfig::getInstance();
$config->setMetadataRefreshIntervalMs(10000);
$config->setMetadataBrokerList('10.13.4.159:9192');
$config->setBrokerVersion('0.9.0.1');
$config->setRequiredAck(1);
$config->setIsAsyn(false);
$config->setProduceInterval(500);
$producer = new \Kafka\Producer(function() {
	return array(
		array(
			'topic' => 'test',
			'value' => 'test....message.',
			'key' => 'testkey',
		),
	);
});
$producer->setLogger($logger);
$producer->success(function($result) {
	var_dump($result);
});
$producer->error(function($errorCode, $context) {
	var_dump($errorCode);
});
$producer->send();

 

##Consumer

<?php
require &#39;../vendor/autoload.php&#39;;
date_default_timezone_set(&#39;PRC&#39;);
use Monolog\Logger;
use Monolog\Handler\StdoutHandler;
// Create the logger
$logger = new Logger(&#39;my_logger&#39;);
// Now add some handlers
$logger->pushHandler(new StdoutHandler());

$config = \Kafka\ConsumerConfig::getInstance();
$config->setMetadataRefreshIntervalMs(10000);
$config->setMetadataBrokerList('10.13.4.159:9192');
$config->setGroupId('test');
$config->setBrokerVersion('0.9.0.1');
$config->setTopics(array('test'));
//$config->setOffsetReset('earliest');
$consumer = new \Kafka\Consumer();
$consumer->setLogger($logger);
$consumer->start(function($topic, $part, $message) {
	var_dump($message);
});

以上內容就是使用PHP 編寫的Kafka 用戶端教程,希望能幫助大家。

相關推薦:

python中Socket之客戶端與服務端握手的實例

php取得訪客(客戶端)IP和地理位置的文字教學

怎麼快速開發webservice客戶端?

以上是使用 PHP 編寫的 Kafka 用戶端的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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