glushkovds/laravel-kafka-queue

Laravel Kafka 队列驱动

v0.1.3 2023-10-06 11:43 UTC

This package is auto-updated.

Last update: 2024-09-06 13:45:07 UTC


README

特性

  1. 支持延迟任务
  2. 支持重试
  3. 支持 Laravel 10
  4. 支持授权

注意

该库的代码仍然很乱,没有稳定版本。使用时请自行承担风险。请关注更新,提出您的建议。

感谢

安装

  1. 构建并安装 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
  1. 使用 composer 安装此包
composer require glushkovds/laravel-kafka-queue
  1. 将服务提供者添加到 app.php
LaravelKafka\KafkaQueueServiceProvider::class
  1. 将 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'),
],
  1. 将凭证添加到 .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