假设我在微服务方案中有一个天蓝色的服务总线。 一个微服务通过订阅将主数据更改推送到其他服务。
现在假设引入了一项新服务并订阅了主数据服务。如何确保新服务收到所有必要的数据? 我是否必须重新发送主数据服务上的所有主数据,或者天蓝色服务总线(或备选方案)是否提供了某些功能?
答案 0 :(得分:1)
据我所知,无法在Azure Service Bus的功能中实现您想要的功能。另外,我不认为这是Service Bus的用途。
当然,有一个可配置的"生存时间"队列和主题中的消息的值,可能设置为某个非常高的值,但这仍然不会使您的主数据无限可用于将来的服务。并且 - 但这只是我的意见,而且我远非成为专家 - 我不想用可能数千甚至数百万条消息加载我的服务总线(取决于你是什么?这样做没有他们快速处理。
出于您的具体考虑,我宁愿实施类似于"主数据导入服务"没有任何服务总线集成。但是,具体细节取决于您的环境和具体要求。
答案 1 :(得分:1)
几点意见: 1)Azure Service总线无法做到这一点。即使您在主题级别设置TTL,消息也只会在该时间点传递给可用的订阅。你无法直接从主题阅读消息。
2)您可以考虑使用Eventhub选项,您可以在其中创建具有偏移量的新消费者组,当您想要开始阅读消息时,但Eventhub的最长保留期为7天。如果您需要超过7天的邮件保留期,则在您的事件中心启用Event Hubs Capture会将数据从您的事件中心提取到存储帐户。但在这种情况下,您需要额外的逻辑来从此存储帐户读取以重放消息。