概述
kafka是最初由linkedin公司開發,是程式設計客棧乙個分布式、分割槽的、多副本的、多訂閱者,基於zookeeper協調的分布式日誌系統(也可以當做mq系統),常見可以用於web/nginx日誌、訪問日誌,訊息服務等等,linkedin於2023年貢獻給了apache**會並成為頂級開源專案。
主要應用場景是:日誌收集系統和訊息系統。
安裝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');
$config->setbrokerversion('0.10.2.1');
$config->setrequiredack(1);
$config->setisasyn(false);
$config->setproduceinterval(500);
$producer = new \kafka\producer(function() );
$producer->success(function($result) );
$producer->error(function($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) );
測試生產者
php produce.php
測試消費者
php consumer.php
Kafka簡單使用示例
sh bin zookeeper server start.sh config zookeeper.properties 啟動zookeeper sh bin kafka server start.sh config server.properties properties properties n...
kafka 集群 測試
參考資料 wget 解壓tar xvzf kafka 2.11 0.10.0.1.tgz 移動mv kafka 2.11 0.10.0.1 usr local 修改配置 cd kafka 2.11 0.10.0.1 config mv server.properties server 1.prope...
kafka效能測試
版本0.10.1.1 kafka broker的jvm預設是使用1g的記憶體 bin kafka producer perf test.sh topic test pati3 rep2 throughput 500000 num records 1500000 record size 1000 pr...