将ASP.NET Core Web应用程序作为Azure服务总线消费者/接收器

3

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

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

我现在需要解决的问题是如何配置一个.NET Core MVC Web应用程序,以接收来自队列的消息。
最终,我想要的是两个.NET Core MVC Web应用程序,它们都可以向队列中添加消息,并且都能够从队列中接收消息。一个网站可能会向另一个网站的队列中添加一条消息,并且在该网站接收/消耗该消息后,可能需要向原始网站发送一条消息。
关于Web应用程序中“添加到队列”的方面,我没有问题(因为这将在用户执行某些事件时发生),但我对接收者/消费者端感到困惑。我该如何配置Web应用程序以尽可能快地获取到任何到达特定服务总线队列上的消息进行处理?

嗨@marcusstarnes, 我想知道你是否解决了这个问题,以及如何解决的? 为什么不在Web应用程序启动时启动侦听器,并在应用程序停止时关闭侦听器呢? - Vitaliy Markitanov
2个回答

2

2
我建议查看eShopOnContainers - 基于微服务架构和容器的参考应用程序GitHub项目,并从那里开始。他们已经实现了一个小框架(请参见项目内的Microsoft.eShopOnContainers.BuildingBlocks.EventBusServiceBus)。
这是它在目录服务内部的样子:
protected virtual void ConfigureEventBus(IApplicationBuilder app)
{
    var eventBus = app.ApplicationServices.GetRequiredService<IEventBus>();
    eventBus.Subscribe<OrderStatusChangedToAwaitingValidationIntegrationEvent, OrderStatusChangedToAwaitingValidationIntegrationEventHandler>();
    eventBus.Subscribe<OrderStatusChangedToPaidIntegrationEvent, OrderStatusChangedToPaidIntegrationEventHandler>();
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接