1 前置閱讀
在閱讀本文章之前,你可以先閱讀:
RabbitMQ入門
什麼是觀察者模式
什麼是事件匯流排
如何使用RabbitMQ實現事件匯流排
2 簡介
MassTransit 是一個自由、開源、輕量級的訊息匯流排, 用於使用。 NET 框架建立分散式應用程式。MassTransit 在現有訊息傳輸上提供了一組廣泛的功能, 從而使開發人員能夠友好地使用基於訊息的會話模式非同步連線服務。基於訊息的通訊是實現面向服務的體系結構的可靠和可擴充套件的方式。
3 使用
首先
,將MassTransit的NuGet軟體包安裝到您的應用程式中。
MassTransitMassTransit。RabbitMQ
然後
,建立具體事件源類。
///
接著
,建立具體事件處理類,預設繼承IConsumer<>介面。
///
最後
,客戶端呼叫。
static void Main(string[] args){ var bus = Bus。Factory。CreateUsingRabbitMq(sbc => { sbc。Host(“rabbitmq://localhost”); sbc。ReceiveEndpoint(“test_queue”, ep => { ep。Consumer
讓我們來看看輸出結果:
商店釋出優惠通知!顧客A收到優惠通知。顧客B收到優惠通知。
4 ASP.NET Core 使用
首先
,將MassTransit的NuGet軟體包安裝到您的應用程式中。
MassTransitMassTransit。RabbitMQMassTransit。AspNetCore
然後
,建立具體事件源類
///
接著
,建立釋出者程式碼:
往Startup。ConfigureServices中增加以下程式碼
services。AddMassTransit(x =>{ x。UsingRabbitMq();});services。AddMassTransitHostedService();
2。建立HomeController,釋出事件
using EventBus。MassTransit。Events;using MassTransit;using Microsoft。AspNetCore。Mvc;using System。Threading。Tasks;namespace EventBus。MassTransit。Producer。WebApi01。Controllers{ [Route(“[controller]”)] [ApiController] public class HomeController : ControllerBase { private readonly IPublishEndpoint publishEndpoint; public HomeController(IPublishEndpoint publishEndpoint) { this。publishEndpoint = publishEndpoint; } [HttpPost] public async Task
接著
,建立訂閱者程式碼:
建立具體事件處理類
///
往Startup。ConfigureServices中增加以下程式碼
services。AddMassTransit(x =>{ x。AddConsumer
最後
,執行Post()方法,在訂閱者專案中跟蹤會輸出:
顧客A收到優惠通知。顧客B收到優惠通知。