• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

kafka-php: Kafka-php 使用纯粹的PHP 编写的 kafka 客户端,目前支持 0.8.x 以上版本 ...

原作者: [db:作者] 来自: 网络 收藏 邀请

开源软件名称:

kafka-php

开源软件地址:

https://gitee.com/weiboad/kafka-php

开源软件介绍:

Kafka-php

English Document

QQ GroupBuild StatusPackagistPackagistPackagistGitHub issuesGitHub forksGitHub starsGitHub license

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

异步回调方式调用

<?phprequire '../vendor/autoload.php';date_default_timezone_set('PRC');use Monolog\Logger;use Monolog\Handler\StdoutHandler;// Create the logger$logger = new Logger('my_logger');// Now add some handlers$logger->pushHandler(new StdoutHandler());$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) {	var_dump($errorCode);});$producer->send(true);

同步方式调用生产者

<?phprequire '../vendor/autoload.php';date_default_timezone_set('PRC');use Monolog\Logger;use Monolog\Handler\StdoutHandler;// Create the logger$logger = new Logger('my_logger');// Now add some handlers$logger->pushHandler(new StdoutHandler());$config = \Kafka\ProducerConfig::getInstance();$config->setMetadataRefreshIntervalMs(10000);$config->setMetadataBrokerList('127.0.0.1:9192');$config->setBrokerVersion('0.9.0.1');$config->setRequiredAck(1);$config->setIsAsyn(false);$config->setProduceInterval(500);$producer = new \Kafka\Producer();$producer->setLogger($logger);for($i = 0; $i < 100; $i++) {        $result = $producer->send(array(                array(                        'topic' => 'test1',                        'value' => 'test1....message.',                        'key' => '',                ),        ));        var_dump($result);}

Consumer

<?phprequire '../vendor/autoload.php';date_default_timezone_set('PRC');use Monolog\Logger;use Monolog\Handler\StdoutHandler;// Create the logger$logger = new Logger('my_logger');// 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);});

Basic Protocol

基础协议 API 调用方式见 Example

QQ 群号

531522091QQ Group


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap