基于双活互备的 DR 解决方案
GreptimeDB 企业版可以将两个 Standalone 节点部署为对等节点。两个节点都能接受读写、保存完整的数据副本,并将数据变更异步复制到对端,不存在长期固定的主节点。
该拓扑适用于边缘和中小型部署:无需运维 GreptimeDB 分布式集群,也能获得节点级或站点级容灾能力。负载均衡器、客户端驱动或服务发现系统负责将流量发送到可用节点。
架构
两个节点相互独立地提供服务:
- 写入在接收请求的节点提交,随后复制到对端;客户端无需等待对端确认。
- 查询只在接收请求的节点上执行,GreptimeDB 不会合并两个节点的查询结果。
- 两个节点之间不要求网络持续连通。对端或网络不可用时,待同步的数据变更会保留在本地,并在连接恢复后继续发送;前提是源节点的存储仍然可用且容量充足。
- 从对端复制而来的数据变更不会再次发回源节点,从而避免循环复制。
由于复制是异步的,对端可能暂时读到旧数据。需要 read-after-write 一致性的应用,应将相关读取保持在接受写入的节点,或等待复制追平后再切换节点。
能力与边界
| 能力 | 行为 |
|---|---|
| 节点与站点冗余 | 每个节点保存完整的数据副本,并能对外提供服务。 |
| 写入复制 | 数据变更在两个节点之间双向异步复制。 |
| 查询执行 | 查询在接收请求的节点上本地执行。 |
| 网络中断 | 健康节点继续服务;对端恢复后继续同步待处理的数据变更。 |
| 流量切换 | 由外部负载均衡器、客户端驱动或服务发现系统切换端点。 |
| 一致性 | 两个节点的数据最终一致。 |
| 横向扩展 | 该拓扑提供双节点冗余,不能替代分布式集群。 |
规划 DR 时需要考虑以下限制: