【问题标题】:How to achieve data consistency in a newly added microservice?如何在新增的微服务中实现数据一致性?
【发布时间】:2021-01-06 13:38:15
【问题描述】:

例如,我们有带有事件溯源的微服务。 为了实现数据一致性,我们使用以下方法:

  1. 微服务生成事件
  2. 事件存储在事件存储中
  3. 事件发布到订阅的微服务

这种方法适用于已经在使用的微服务。 但是如果我需要部署另一个需要与事件存储同步数据的微服务呢? 显然,这个新的微服务错过了所有已发布的事件。

这个新的微服务是否应该自己从事件存储中提取事件?

【问题讨论】:

    标签: architecture microservices event-sourcing data-consistency


    【解决方案1】:

    随着时间的推移,从事件存储中提取所有事件可能会变得很昂贵,因为事件的数量可能会激增。

    为了加快新微服务的初始化,您应该不时创建应用程序状态的快照(并将其存储在一些快速访问的内存/缓存中)。快照后存储的所有事件均基于快照中的应用程序状态。

    这样,当您部署新的微服务时,它将首先加载最新的快照,然后应用在该快照之后存储的所有事件,以获取最新的应用状态。

    您可以调整创建快照的频率,以便需要加载的额外事件的数量相对较少。

    This 是一篇不错的文章,您可以查看更多详细信息。

    【讨论】:

      猜你喜欢
      • 2018-03-23
      • 2022-10-12
      • 2022-10-16
      • 2015-09-15
      • 2021-10-23
      • 2017-11-30
      • 2015-09-03
      • 1970-01-01
      相关资源
      最近更新 更多