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