salebab/kafka-php

Kafka PHP库

dev-master 2013-12-23 13:38 UTC

This package is not auto-updated.

Last update: 2024-09-14 14:26:20 UTC


README

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

要求

  • 最小PHP版本:5.3.3。
  • Apache Kafka 0.6.x或0.7.x。
  • 您需要访问您的Kafka实例,并通过TCP连接。您可以在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/