springboardvr / event-gateway-service
Laravel的事件网关服务
0.0.5
2020-04-15 20:24 UTC
Requires
- guzzlehttp/guzzle: ^6.3
- illuminate/support: ~5.5.0|~5.6.0|~5.7.0|~5.8.0|^6.0|^7.0
README
Laravel的事件网关服务
此包旨在通过事件网关在微服务之间共享事件。它分为客户端和服务端。
安装
使用composer安装
composer require springboardvr/event-gateway-service
发布配置
php artisan vendor:publish --provider="SpringboardVR\EventGatewayService\Providers\EventGatewayServiceProvider" --tag="config"
客户端
客户端负责从事件网关接收事件并内部分发。
设置
- 在事件网关上创建您的客户端账户,并设置客户端密钥和客户端URL(默认为
https://HOST/events
)。 - 在
config/event-gateway.php
或EVENTGATEWAY_CLIENT_SECRET
环境变量中设置您的客户端密钥。
用法
在事件网关的订阅者部分设置您想要监听的通道。事件总是以服务为前缀,例如billing_service.invoice.created
。
示例
Event::listen('billing_service.invoice.created', function ($invoice) {
PaymentService::payInvoice($invoice);
});
服务
服务负责将与事件网关和其他微服务共享的选定事件。
设置
- 在事件网关中创建一个新的服务,并设置服务名称和密钥。
- 在
config/event-gateway.php
中设置您的Event Gateway、服务名称和密钥。 - 使用
event-gateway.channels
配置设置您想要与事件网关共享的事件。
用法
与event-gateway.channels
模式匹配的事件(目前不支持通配符),将被与其他订阅了配置中使用的命名空间的微服务共享。事件网关将自动为每个分发的事件添加服务前缀。例如,如果您使用服务名称billing
并设置通道
'invoice.saved' => [
'eloquent.saved: App/Models/Invoice',
]
发票模型的每个保存事件将被分发为billing.invoice.saved
。