具有多个主题和订阅者的Azure服务总线单个服务

mmvthczy  于 2023-01-09  发布在  其他
关注(0)|答案(1)|浏览(124)

我有一个微服务,它是一个使用者/订阅者服务,从其他2个服务接收消息。因此,我希望此微服务从具有不同主题和订阅的其他2个微服务订阅。构造/初始化服务/Azure服务总线属性如下所示:

services.AddServiceBusNotifications(Configuration, "Communication");
 services.AddServiceBusNotifications(Configuration, "SSO");

订购这两项服务的代码如下:

var eventBus = applicationBuilder.ApplicationServices.GetRequiredService<IEventBus>(); 

eventBus.Subscribe<MeetinginviteCreatedEvent, MeetinginviteCreatedEventHandler>();

eventBus.Subscribe<NewUserCreatedEvent, NewUserCreatedEventHandler>();

因此,以上两行都是从同一个主题&订阅者获取设置(主题/订阅),但我想获取2个不同微服务的主题和订阅。我如何使用同一个订阅者获取多个主题和订阅(不同微服务)。
我已经按照URL中的代码:https://github.com/pmchlk/service-bus-messaging

htrmnn0y

htrmnn0y1#

由于您有一个围绕Azure服务总线SDK的 Package 器,因此您共享的代码中有很多内容,但如果我对它的理解是正确的,解决您的问题的一种方法是将单个订阅中的simply forward messages转换为另一个主题/订阅,并在您的服务中使用它。
根据我对代码的理解,如果它能像我期望的那样工作,那么这会更简单。
其他的选择是改变你的依赖注入代码来注册 transient 事件总线对象而不是单例对象,或者更新你的事件总线类来处理多个订阅。这两种方法都需要在你的自定义实现中做一些改变。

相关问题