daalvand/kafka
Composer 安装命令:
composer require daalvand/kafka
包简介
This package is for produce and consume from kafka
README 文档
README
- This package is for kafka consume and produce in laravel
installation
Install Kafka
Apache Kafka is need for many sections of our ecosystem
-
install librdkafka from The Apache Kafka C/C++ client library
for the ubuntu:
apt install librdkafka-dev.for the centos:
yum install librdkafka-devel -
Then build php extension from Manually Installing the extension
git clone https://github.com/arnaud-lb/php-rdkafka.git cd php-rdkafka phpize ./configure make all -j 5 sudo make install -
Then extension to
php.iniextension=rdkafka.so -
Then restart php-fpm service
service php-fpm restart
install package
- run
composer require daalvand/kafka
2 . publish provider:
Laravel
php artisan vendor:publish --provider="Daalvand\Kafka\KafkaServiceProvider"
Lumen
- Add the service provider to bootstrap/app.php file:
<?php $app->register(Daalvand\Kafka\KafkaServiceProvider::class);
- Copy the config file from
/vendor/daalvand/kafka/src/configto/configdirectory. Then configure it in/bootstrap/app.phpfile:
<?php $app->configure("kafka");
Usage
Producer
<?php use Daalvand\Kafka\Message\ProducerMessage; use Daalvand\Kafka\Facades\Producer; $producer = Producer::withAdditionalBroker('localhost:9092') ->build(); $message = (new ProducerMessage('topic-name', 0)) ->withKey('test-key') ->withBody('some test message payload') ->withHeaders(['header' => 'value']); $producer->produce($message); $producer->flush(-1);
Consumer
<?php use Daalvand\Kafka\Facades\Consumer; use Daalvand\Kafka\Exceptions\ConsumerConsumeException; use Daalvand\Kafka\Exceptions\ConsumerEndOfPartitionException; use Daalvand\Kafka\Exceptions\ConsumerTimeoutException; $consumer = Consumer::withAdditionalConfig([ 'compression.codec' => 'lz4', 'auto.commit.interval.ms' => 500 ]) ->withAdditionalBroker('kafka:9092') ->withConsumerGroup('testGroup') ->withAdditionalSubscription('test-topic') ->build(); $consumer->subscribe(); while (true) { try { $message = $consumer->consume(); // your business logic $consumer->commit($message); } catch (ConsumerTimeoutException $e) { //no messages were read in a given time } catch (ConsumerEndOfPartitionException $e) { //only occurs if enable.partition.eof is true (default: false) } catch (ConsumerConsumeException $e) { // Failed } }
auto.offset.resetoption is (largest, smallest) valid values for kafka by older version than 0.9 and for after .9 is (earliest, latest)
daalvand/kafka 适用场景与选型建议
daalvand/kafka 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 4.21k 次下载、GitHub Stars 达 0, 最近一次更新时间为 2021 年 09 月 24 日, 在 PHP 生态内属于活跃度较高的组件。
我们在过去多个企业项目中使用过 daalvand/kafka 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 daalvand/kafka 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
统计信息
- 总下载量: 4.21k
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 9
- 依赖项目数: 2
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2021-09-24