提升高可用的核心是"冗余",常见方法如下
- 定期备份
- 同机房:冷备
- 同城:同城灾备
- 异地:异地冷备(+同城双活=两地三中心)
- 主从副本
- 同机房:热备
- 同城:同城双活
- 异地:异地写,延迟高
- 多主同步
- 异地双活:分流,解决写冲突
- 按业务类型:关联业务部署同机房
- 按用户哈希:
- 按地理位置:考虑用户移动位置
- 异地多活:网状同步复杂,星状只与主节点同步
- 异地双活:分流,解决写冲突
异地多活的重点是"分流",让同一个用户的相关请求,只打到同一个机房,避免写冲突。
“分流"异常时也有可能出现流量"漂移”(程序 Bug、定位漂移),写存储时最好再检测一下"数据归属"。