gpt4 book ai didi

database - 对分布式事务使用事件溯源是个好主意吗?

转载 作者:搜寻专家 更新时间:2023-10-30 23:27:45 25 4
gpt4 key购买 nike

我有 2 个有状态服务集群:mongo 和 elasticsearch 集群。我想让两个集群的文档保持同步。

对我来说,这看起来像是一个分布式事务问题,我决定尝试事件溯源,因为它不仅解决了这个问题,而且自然适合我的应用程序。

我决定使用 https://eventstore.org存储事件,从我的后端订阅更改,然后更新我的有状态集群。

我的后端是无状态的,最终它会扩展到多个实例,我担心每个后端实例都会从 eventstore 获取更新并更新有状态集群,因为更新可能是幂等的,所以我会每次写入都会得到 N 个相似的文档。通常如何解决这个问题?

我真的不想为每个集群创建一个单例订阅者,它监听更新,它使这个单例成为单点故障......

最佳答案

How is usually this problem solved?

使用单例编写器是一个很好的解决方案。通过这种方式,您可以确保不会重复工作,并且可以按照事件写入事件存储的顺序使用事件更新有状态集群。

I really don't want to create a singleton subscriber for each cluster, which listens for updates, it makes this singleton a single point of failure...

这可以很容易缓解,因为这个单例服务是无状态的,所以它可以很容易地重新启动,甚至可以在失败时转移到另一台主机上。如果您使用容器编排器(如 Docker Swarm 或 Kubernetes),这将非常简单。

关于database - 对分布式事务使用事件溯源是个好主意吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54223047/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com