如何解决新增微服务如何实现数据一致性?
例如,我们有带有事件溯源的微服务。 为了实现数据一致性,我们使用以下方法:
- 微服务生成事件
- 事件存储在事件存储中
- 事件发布到订阅的微服务
这种方法适用于已经在使用的微服务。 但是如果我需要部署另一个需要与事件存储同步数据的微服务怎么办? 显然,这个新的微服务错过了所有已发布的事件。
这个新的微服务是否应该自己从事件存储中提取事件?
解决方法
随着时间的推移,从事件存储中提取所有事件的成本可能会很高,因为事件的数量可能会激增。
为了加速新微服务的初始化,您应该不时创建应用程序状态的快照(并将其存储在一些快速访问的内存/缓存中)。快照后存储的所有事件均基于快照中的应用程序状态。
这样,当您部署新的微服务时,它会首先加载最新的快照,然后应用该快照之后存储的所有事件,以了解应用状态的最新情况。
您可以调整制作快照的频率,以便需要加载的额外事件的数量相对较少。
This 是一篇不错的文章,您可以查看更多详细信息。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。