php測試kafka項目示例
本文實例講述了php測試kafka項目。分享給大家供大家參考,具體如下:
概述
Kafka是最初由Linkedin公司開發(fā),是一個分布式、分區(qū)的、多副本的、多訂閱者,基于zookeeper協(xié)調的分布式日志系統(tǒng)(也可以當做MQ系統(tǒng)),常見可以用于web/nginx日志、訪問日志,消息服務等等,Linkedin于2010年貢獻給了Apache基金會并成為頂級開源項目。
主要應用場景是:日志收集系統(tǒng)和消息系統(tǒng)。
安裝kafka-php項目依賴
composer require nmred/kafka-php
produce.php
<?php
require './vendor/autoload.php';
date_default_timezone_set('PRC');
$config = \Kafka\ProducerConfig::getInstance();
$config->setMetadataRefreshIntervalMs(10000);
$config->setMetadataBrokerList('127.0.0.1:9092');
$config->setBrokerVersion('0.10.2.1');
$config->setRequiredAck(1);
$config->setIsAsyn(false);
$config->setProduceInterval(500);
$producer = new \Kafka\Producer(function() {
$t = time();
return array(
array(
'topic' => 'test',
'value' => $t,
'key' => $t,
),
);
});
$producer->success(function($result) {
var_export($result);
});
$producer->error(function($errorCode) {
var_dump('error', $errorCode);
});
$producer->send();
consumer.php
<?php
require './vendor/autoload.php';
date_default_timezone_set('PRC');
$config = \Kafka\ConsumerConfig::getInstance();
$config->setMetadataRefreshIntervalMs(10000);
$config->setMetadataBrokerList('127.0.0.1:9092');
$config->setGroupId('test');
$config->setBrokerVersion('0.10.2.1');
$config->setTopics(array('test'));
$consumer = new \Kafka\Consumer();
$consumer->start(function($topic, $part, $message) {
var_dump($message);
});
測試生產者
php produce.php
測試消費者
php consumer.php
更多關于PHP相關內容感興趣的讀者可查看本站專題:《php面向對象程序設計入門教程》、《PHP數組(Array)操作技巧大全》、《PHP基本語法入門教程》、《PHP運算與運算符用法總結》、《php字符串(string)用法總結》、《php+mysql數據庫操作入門教程》及《php常見數據庫操作技巧匯總》
希望本文所述對大家PHP程序設計有所幫助。
相關文章
解決Mac OS X 自帶PHP環(huán)境gd庫擴展缺少freetype的問題
下面小編就為大家分享一篇解決Mac OS X 自帶PHP環(huán)境gd庫擴展缺少freetype的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-03-03
關于php支持的協(xié)議與封裝協(xié)議總結(推薦)
這篇文章主要給大家介紹了關于php支持的協(xié)議與封裝協(xié)議的相關資料,文中通過示例代碼介紹的非常詳細,對大家學習或者使用PHP具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧。2017-11-11
PHP中error_reporting()函數的用法(修改PHP屏蔽錯誤)
一般在默認的普通PHP文件中輸出一個未定義聲明的變量是不會報錯誤的,但在codeigniter框架下卻要報錯誤,這對于想集成 添加 和 修改 頁面于一體的”懶人”很不方便,由于是初學者開始還想怎么在代碼中屏蔽這一錯誤提示呢.甚至用到了@,但聽很多人都說@會大大降低性能.2011-07-07
php中getservbyport與getservbyname函數用法實例
這篇文章主要介紹了php中getservbyport與getservbyname函數用法,以實例形式分析了getservbyport與getservbyname函數獲取server端的端口等信息的方法,需要的朋友可以參考下2014-11-11

