springboardvr/event-gateway-service

Laravel的事件网关服务

0.0.5 2020-04-15 20:24 UTC

This package is auto-updated.

Last update: 2024-09-16 06:07:41 UTC


README

Laravel的事件网关服务

此包旨在通过事件网关在微服务之间共享事件。它分为客户端和服务端。

安装

使用composer安装

composer require springboardvr/event-gateway-service

发布配置

php artisan vendor:publish --provider="SpringboardVR\EventGatewayService\Providers\EventGatewayServiceProvider" --tag="config"

客户端

客户端负责从事件网关接收事件并内部分发。

设置

  1. 在事件网关上创建您的客户端账户,并设置客户端密钥和客户端URL(默认为https://HOST/events)。
  2. config/event-gateway.phpEVENTGATEWAY_CLIENT_SECRET环境变量中设置您的客户端密钥。

用法

在事件网关的订阅者部分设置您想要监听的通道。事件总是以服务为前缀,例如billing_service.invoice.created

示例

Event::listen('billing_service.invoice.created', function ($invoice) {
    PaymentService::payInvoice($invoice);
});

服务

服务负责将与事件网关和其他微服务共享的选定事件。

设置

  1. 在事件网关中创建一个新的服务,并设置服务名称和密钥。
  2. config/event-gateway.php中设置您的Event Gateway、服务名称和密钥。
  3. 使用event-gateway.channels配置设置您想要与事件网关共享的事件。

用法

event-gateway.channels模式匹配的事件(目前不支持通配符),将被与其他订阅了配置中使用的命名空间的微服务共享。事件网关将自动为每个分发的事件添加服务前缀。例如,如果您使用服务名称billing并设置通道

'invoice.saved' => [
    'eloquent.saved: App/Models/Invoice',
 ]

发票模型的每个保存事件将被分发为billing.invoice.saved