1. 程式人生 > >MassTransit RabbitMq 訊息整合命令與事件釋出

MassTransit RabbitMq 訊息整合命令與事件釋出

一.MassTransit 

  MassTransit 是一個免費開源輕量級的.net平臺下的訊息匯流排系統。我們將介紹如果使用MassTransit整合我們系統中的事件與命令。專案地址:https://github.com/MassTransit/MassTransit。本文使用一次簡單的下訂單模擬命令與事件,並通過MassTransit 進行整合。

二.訊息產生

  客戶端通過下訂單的動作產生一條placeorder命令,系統處理命令的同時產生一條ordercreated事件。

三.專案

  專案的目錄結構如下圖:

    

一個事件處理器,一個命令處理器,web為客戶端,message定義命令與事件。

 

  MassTransit 通過autofac 注入,nuget新增autofac、MassTransit 、MassTransit.RabbitMQ的程式包

asp.net core mvc的注入配置如下:

  

 public IServiceProvider ConfigureServices(IServiceCollection services)
        {
            services.Configure<CookiePolicyOptions>(options =>
            {
                
// This lambda determines whether user consent for non-essential cookies is needed for a given request. options.CheckConsentNeeded = context => true; options.MinimumSameSitePolicy = SameSiteMode.None; }); services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1);
var builder = new ContainerBuilder(); builder.Register(c => { return Bus.Factory.CreateUsingRabbitMq(sbc => sbc.Host("localhost", "/", h => { h.Username("guest"); h.Password("guest"); }) ); }) .As<IBusControl>() .As<IBus>() .As<IPublishEndpoint>() .As<ISendEndpointProvider>() .SingleInstance(); builder.Populate(services); container = builder.Build(); return new AutofacServiceProvider(container); }

 

下載地址