quipo/kafka-php

Apache Kafka 0.7 的 PHP 客户端库

v1.0.0 2015-10-27 09:44 UTC

This package is auto-updated.

Last update: 2024-09-06 17:43:50 UTC


README

kafka-php 允许您向 Apache Kafka 分布式发布/订阅消息服务发送消息。

需求

  • 最低 PHP 版本:5.3.3。
  • Apache Kafka 0.6.x 或 0.7.x。
  • 您需要能够通过 TCP 连接到您的 Kafka 实例。您可以在 https://github.com/kafka-dev/kafka 获取 Kafka 的副本和设置说明。
  • 如果您想使用基于 Zookeeper 的消费者,则需要 PHP Zookeeper 扩展

安装

将 lib 目录添加到 PHP include_path,并使用示例目录中的自动加载器(代码遵循 PEAR/Zend 单类单文件约定)。

使用方法

示例目录包含生产者、简单消费者和基于 Zookeeper 的消费者的示例。

示例生产者

$producer = new Kafka_Producer('localhost', 9092, Kafka_Encoder::COMPRESSION_NONE);
$messages = array('some', 'messages', 'here');
$topic = 'test';
$bytes = $producer->send($messages, $topic);

示例消费者

$topic         = 'test';
$partition     = 0;
$offset        = 0;
$maxSize       = 1000000;
$socketTimeout = 5;

while (true) {
    $consumer = new Kafka_SimpleConsumer('localhost', 9092, $socketTimeout, $maxSize);
    $fetchRequest = new Kafka_FetchRequest($topic, $partition, $offset, $maxSize);
    $messages = $consumer->fetch($fetchRequest);
    foreach ($messages as $msg) {
        echo "\nMessage: " . $msg->payload();
    }
    //advance the offset after consuming each MessageSet
    $offset += $messages->validBytes();
    unset($fetchRequest);
}

待办事项

  • 支持 Snappy 压缩

有关问题的联系方式

Lorenzo Alberton

l.alberton at(@) quipo.it

http://twitter.com/lorenzoalberton

http://alberton.info/