假设我们有微服务A(MS A)和微服务B(MS B)。 MS B有关于产品的数据。 MS A需要MS B的产品名称。
每次添加,更新或删除产品时,MS B都会在消息队列中放置消息。 MS A订阅了该队列,因此它可以更新它自己的内部状态。
现在我的问题: 当我们第一次将它部署到生产中时,我们如何填补MS A的内部状态? 我找不到任何有关可能解决方案的利弊的文档。 我能想到:
在数据库级别导出/导入。
优点:工作量不大。
缺点:如果在导出/导入过程中更改了MS A的数据,可能会丢失数据。
实现对GetData和GetDataChangedSince的调用
优点:失败保险
缺点:很多工作
还有其他选择吗?还有其他优点/缺点吗?
答案 0 :(得分:0)
您可以使用以下工作流程:
答案 1 :(得分:0)
听起来您的架构中缺少服务/ API调用。将服务转移到生产中应该与从故障中恢复并没有什么不同,并且不需要任何额外的步骤。也许消息应该由另一个服务从队列中消耗,然后可以查询该消息以获得完整的产品列表。