pon / laravel-kafka
laravel-kafka
dev-master
2023-09-27 02:21 UTC
Requires
- php: >=7.1
- ext-rdkafka: *
- illuminate/database: >=5.8
- illuminate/queue: >=5.8
- illuminate/support: >=5.8
This package is auto-updated.
Last update: 2024-10-27 05:25:47 UTC
README
Laravel Kafka队列
安装
安装PHP依赖库
pecl install rdkafka
在PHP的初始化文件php.ini中添加以下一行语句以开启Kafka扩展。
extension=rdkafka.so
b. 检车 rdkafka 是否安装成功
注意:如果你想在 php-fpm 上运行它,请先重启你的 php-fpm php -i | grep rdkafka 你的输出应该是这样的 rdkafka rdkafka support => enabled librdkafka version (runtime) => 1.6.1-38-g7f0929-dirty librdkafka version (build) => 1.6.1.255
通过 Composer 安装这个包
composer require phpkafka/laravel-kafka
将 LaravelQueueKafkaServiceProvider 添加到providers数组中config/app.php
phpkafka\LaravelQueueKafka\LaravelQueueKafkaServiceProvider::class,
如果您使用 Lumen,请将其放入 bootstrap/app.php
$app->register(phpkafka\LaravelQueueKafka\LumenQueueKafkaServiceProvider::class);
5.要使用 kafka 队列驱动程序,需要在 config/queue.php 配置文件中配置一个 kafka 连接。
'kafka' => [
'driver' => 'kafka',
'queue' => env('KAFKA_QUEUE', 'default'),
'consumer_group_id' => env('KAFKA_CONSUMER_GROUP_ID', 'laravel_queue'),
'brokers' => env('KAFKA_BROKERS', 'localhost'),
'sleep_on_error' => env('KAFKA_ERROR_SLEEP', 5),
'sleep_on_deadlock' => env('KAFKA_DEADLOCK_SLEEP', 2),
]
将这些属性添加到.env 文件中
QUEUE_CONNECTION=kafka 选择配置 KAFKA_BROKERS=127.0.0.1:9092 #kafka地址,多个用,隔开 KAFKA_ERROR_SLEEP=5 #确定的秒数睡眠与kafka交流如果有一个错误(秒) KAFKA_DEADLOCK_SLEEP=2 #睡眠时检测到死锁(秒) KAFKA_QUEUE=default #默认队列名 KAFKA_CONSUMER_GROUP_ID=test #默认分组
如果你想为特定的消费者Group运行队列
export KAFKA_CONSUMER_GROUP_ID="testgroup" && php artisan queue:work --sleep=3 --tries=3
多消费者 1629095586676.jpg