glushkovds / laravel-kafka-queue
Laravel Kafka 队列驱动
v0.1.3
2023-10-06 11:43 UTC
Requires
- php: ^8.0
- ext-json: *
- ext-rdkafka: *
- laravel/framework: >=9
Requires (Dev)
- mockery/mockery: ^1.5
- nunomaduro/larastan: ^1.0
- orchestra/testbench: ^6.24
- phpstan/phpstan-mockery: ^1.0
- phpunit/phpunit: ^9.5
- slevomat/coding-standard: ^6.4
- squizlabs/php_codesniffer: ^3.6
README
特性
- 支持延迟任务
- 支持重试
- 支持 Laravel 10
- 支持授权
注意
该库的代码仍然很乱,没有稳定版本。使用时请自行承担风险。请关注更新,提出您的建议。
感谢
- https://github.com/rapideinternet/laravel-queue-kafka - 源代码,看起来这个库已被弃用
- https://github.com/lukaszaleckas/laravel-kafka-queue - 延迟任务,Docker 环境
安装
- 构建并安装 librdkafka 库,安装 pecl 扩展 rdkafka
ENV LIBRDKAFKA_VERSION "v2.2.0" RUN cd /tmp \ && mkdir librdkafka \ && cd librdkafka \ && git clone --branch ${LIBRDKAFKA_VERSION} --depth 1 https://github.com/confluentinc/librdkafka.git . \ && ./configure \ && make \ && make install \ && rm -rf /tmp/librdkafka RUN pecl install rdkafka RUN docker-php-ext-enable rdkafka
- 使用 composer 安装此包
composer require glushkovds/laravel-kafka-queue
- 将服务提供者添加到
app.php
LaravelKafka\KafkaQueueServiceProvider::class
- 将 Kafka 的连接添加到
queue.php
配置文件
'kafka' => [ 'driver' => 'kafka', 'broker_list' => env('KAFKA_BROKER_LIST', 'kafka:9092'), 'queue' => env('KAFKA_QUEUE', 'default'), 'heartbeat' => 5 * 1000, //Heartbeat in milliseconds 'group_name' => env('KAFKA_QUEUE_GROUP', 'default'), 'producer_timeout' => 1 * 1000, //Producer timeout in milliseconds 'consumer_timeout' => 3 * 1000, //Consumer timeout in milliseconds 'auth_login' => env('KAFKA_AUTH_LOGIN'), 'auth_mechanism' => env('KAFKA_AUTH_MECHANISM', 'PLAIN'), 'auth_password' => env('KAFKA_AUTH_PASSWORD'), 'auth_ssl_ca_location' => env('KAFKA_AUTH_SSL_CA_LOCATION'), ],
- 将凭证添加到
.env
文件
KAFKA_BROKER_LIST=kafka1:9092,kafka2:9093
KAFKA_QUEUE=my-queue
KAFKA_QUEUE_GROUP=my-app
KAFKA_AUTH_LOGIN=
KAFKA_AUTH_PASSWORD=
关于 pecl 扩展 rdkafka 的更多信息
https://arnaud.le-blanc.net/php-rdkafka-doc/phpdoc/index.html