ASP.NET Core Web App作为Azure服务总线的使用者/接收者

时间:2019-08-05 07:13:44

标签: azure .net-core asp.net-core-mvc message-queue azureservicebus

我是Azure Service Bus的新手,并且刚刚遵循下面链接中的MS指南,以运行2个.NET Core控制台应用程序。一个作为发送者,另一个作为接收者/消费者。

https://docs.microsoft.com/en-us/azure/service-bus-messaging/service-bus-dotnet-get-started-with-queues

我现在需要的是弄清楚如何配置.NET Core MVC Web应用程序,以从队列接收消息。

最终,我想要的最终结果是2个.NET Core MVC Web应用程序,它们既可以将消息添加到队列中,又可以接收队列外的消息。一个网站可能会在另一网站的队列中添加一条消息,并且在该网站提取/使用该消息时,可能需要将消息发送回原始网站。

我可以在Web应用程序中使用它的“添加到队列”端(因为这将在用户发生某些事件时发生),但是我对接收器/消费者端感到困惑。如何配置Web应用程序以(尽快)提取到达特定服务总线队列中的所有消息以进行处理?

2 个答案:

答案 0 :(得分:0)

我建议看一下eShopOnContainers - Microservices Architecture and Containers based Reference Application GitHub项目并从那里开始。他们为此实现了一个小框架(请参阅项目内部的 Microsoft.eShopOnContainers.BuildingBlocks.EventBusServiceBus )。

这是Catalog Service内部的样子:

protected virtual void ConfigureEventBus(IApplicationBuilder app)
{
    var eventBus = app.ApplicationServices.GetRequiredService<IEventBus>();
    eventBus.Subscribe<OrderStatusChangedToAwaitingValidationIntegrationEvent, OrderStatusChangedToAwaitingValidationIntegrationEventHandler>();
    eventBus.Subscribe<OrderStatusChangedToPaidIntegrationEvent, OrderStatusChangedToPaidIntegrationEventHandler>();
}

答案 1 :(得分:0)

我认为这个git项目可以给您一个想法。

它有2个Web应用程序-一个是生产者,一个是消费者。在消费者中,您将看到侦听器的注册位置。

https://github.com/damienbod/AspNetCoreServiceBus