如何在新增的微服务中实现数据一致性



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

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

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

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

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

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

这样,当你部署一个新的微服务时,它将首先加载最新的快照,然后应用该快照之后存储的所有事件,以了解应用程序的最新状态。

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

这是一篇很好的文章,你可以查看更多详细信息。

相关内容

  • 没有找到相关文章

最新更新