微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

kafka-php PHP 编写的 kafka 客户端

程序名称:kafka-php

授权协议: Apache

操作系统: 跨平台

开发语言: PHP

kafka-php 介绍

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 '../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());

// 设置生产相关配置,具体配置参数见 [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 '../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

kafka-php 官网

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐