承接 a-mazalov/kali-message-broker 相关项目开发

从需求分析到上线部署,全程专人跟进,保证项目质量与交付效率

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

a-mazalov/kali-message-broker

最新稳定版本:v4.3.6

Composer 安装命令:

composer require a-mazalov/kali-message-broker

包简介

Messaging between microservices

README 文档

README

Latest Stable Version

Messages between services using the rabbitmq broker

Запуск в dev container VScode

  1. Open project
  2. F1 -> Dev Containers: Rebuild and Reopen in Container

Запуск тестов

composer test

Публикация сообщений в RabbitMQ

  1. Необходимо указать подключение к RabbitMQ AMQP

Где AMQP_EXCHANGE_NAME имя общего обменника

AMQP_HOST=rabbitmq
AMQP_PORT=5672
AMQP_USER=root
AMQP_PASSWORD=root
AMQP_VHOST=/
AMQP_QUEUE_NAME=
AMQP_EXCHANGE_NAME=incoming_web
  1. Отправка через Notification

Реализовать класс уведомления с каналом RabbitmqChannel или воспользоваться существующим классом RabbitmqMessageNotification

    use Kali\MessageBroker\Messages\Data\Test;
    use Kali\MessageBroker\Notifications\RabbitmqMessageNotification;

    $testData = new Test(email: "djoni@google.com", message: "Hello World!");
    $routing_key = "access" // очередь сервиса в который необходимо отправить сообщение. Роутинг настраивается через Exchange в админке RabbitMQ 

    Notification::route("rabbitmq", $routing_key)->notify(
        new RabbitmqMessageNotification("TestJob", $testData->toResource())
    );

Получение сообщений из RabbitMQ

Для получения сообщений из Rabbitmq необходимо подключение и обработчик очереди php artisan rabbitmq:consume

  1. Требуется дополнительная установка пакета laravel-queue-rabbitmq

  2. Необходимо указать подключение к rabbitmq и прослушиваемую очередь RABBITMQ_QUEUE

RABBITMQ_HOST=rabbitmq
RABBITMQ_PORT=5672
RABBITMQ_USER=root
RABBITMQ_PASSWORD=root
RABBITMQ_VHOST=/
RABBITMQ_QUEUE=access_queue
  1. Добавить конфигурацию в config/queue.php (актуальная конфигурация в документации пакета)
        'rabbitmq_consumer' => [
            'driver' => 'rabbitmq',
            'queue' => env('RABBITMQ_QUEUE', 'default'),
            'connection' => PhpAmqpLib\Connection\AMQPLazyConnection::class,

            'hosts' => [
                [
                    'host' => env('RABBITMQ_HOST', '127.0.0.1'),
                    'port' => env('RABBITMQ_PORT', 5672),
                    'user' => env('RABBITMQ_USER', 'guest'),
                    'password' => env('RABBITMQ_PASSWORD', 'guest'),
                    'vhost' => env('RABBITMQ_VHOST', '/'),
                ],
            ],

            'options' => [
                'ssl_options' => [
                    'cafile' => env('RABBITMQ_SSL_CAFILE', null),
                    'local_cert' => env('RABBITMQ_SSL_LOCALCERT', null),
                    'local_key' => env('RABBITMQ_SSL_LOCALKEY', null),
                    'verify_peer' => env('RABBITMQ_SSL_VERIFY_PEER', true),
                    'passphrase' => env('RABBITMQ_SSL_PASSPHRASE', null),
                ],
                'queue' => [
                    'job' => \Kali\MessageBroker\Worker\ConsumeRabbitMQ::class,
                ],
            ],

            /*
             * Set to "horizon" if you wish to use Laravel Horizon.
             */
            'worker' => env('RABBITMQ_WORKER', 'default'),
        ],
  1. Реализовать класс обработчика сообщений и указать его в конфигурации
    'queue' => [
        'job' => \Kali\MessageBroker\Worker\ConsumeRabbitMQ::class,
    ],
  1. Выполнить php artisan vendor:publish и выбрать Kali\MessageBroker\Providers\MsgServiceProvider

  2. Заполнить config/message.php для соотвествия имени входящего сообщения и выполнения требуемой задачи

  3. Запустить обработчки php artisan rabbitmq:consume rabbitmq_consumer

rabbitmq_consumer - имя подключение в config/queue.php

统计信息

  • 总下载量: 187
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 2
  • 点击次数: 1
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 1
  • Watchers: 1
  • Forks: 1
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2022-11-22

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固