我正在创建一个Azure工作人员角色,该角色将订阅由我无法控制的服务发布的某些事件。发布者和订阅者都将托管在Azure中。
该角色将成为已经使用NServiceBus发布和订阅其拥有的事件的云服务的一部分。为了保持一致,我希望在新角色中使用相同的库。
该活动的发布者未使用NServiceBus。他们使用WindowsAzure.ServiceBus包创建BrokeredMessage对象,使用JSON.Net来序列化消息有效负载。他们还在每个事件类型中使用一个'主题'图案。
我需要我的角色订阅3个主题,ItemActivated,ItemDeactived和ItemExpired。每个主题都有一个发布给它的事件类型,并且我可以通过共享的nuget包使用事件定义。事件是ItemActivatedEventV1,ItemDeactivedEventV1等......
使用事件定义我可以编写消息处理程序,但我不相信NServiceBus是订阅者中的正确选择。由于发布者没有使用NServiceBus,因此不会出现任何消息标题 - 这是否会影响订阅者的行为?
每个活动的主题'也不同于NServiceBus'端点'方法,其中多个事件发送到单个端点。是否可以配置NServiceBus来监听多个主题,例如在app.config中使用MessageHandlerMappings?
最后,可以使用JsonSerializer配置订户,但是在通信的两端都不能保证完全相同。这会影响行为吗?
有没有人有这种情况的经验?任何建议赞赏