集群中创建和管理有状态服务
1. 有状态服务的持久化与同步复制
创建有状态服务时,通常会考虑如何保留其状态,但这并非适用于所有情况,具体取决于服务的架构。有一些有状态服务能在所有实例间同步状态,例如 Docker Flow Proxy 和 MongoDB。状态同步意味着一个实例的数据发生变化时,能将该变化传播到其他所有实例,不过要在不牺牲可用性的前提下确保数据一致并非易事。
下面以 Docker Flow Proxy 和 MongoDB 为例,介绍如何处理具备数据复制和同步能力的有状态服务。即便你的数据库和代理选择不同,也可参考这些示例,因为大多数数据库在复制和同步方面遵循相似原则。
2. 持久化 Docker Flow Proxy 状态
Docker Flow Proxy 是有状态服务,但这并不妨碍对其进行扩展。其架构设计使得所有实例的数据保持一致,这种机制可称为状态复制和同步。
- 复制流程 :
1. 实例接收到改变其状态的请求。
2. 查找同一服务其他所有实例的地址。
3. 将请求重新发送到其他所有实例。
graph LR
A[实例接收改变状态请求] --> B[查找其他实例地址]
B --> C[重新发送请求到其他实例]
- 同步流程 :
1. 创建服务的新实例。
2. 查找同一服务的其他实例地址。
3. 从其他实
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



