双机房架构(一主一从)
这种架构属于异地双活相对比较简单的实现方案。
服务可以做到无状态,但是数据库无法实现无状态。
服务
服务虽然是无状态的,也可以把服务+基础依赖服务按照机房完全隔离开来。
这样一个机房如果出现问题,可以将流量全部切换到另一边。
数据库
重点:
1)数据库通过主从同步,机房故障时,可以可以将另一个机房的从升级为主。
通过主从切换实现数据库的机房切换。
2)因为 CAP 的限制,所以不同的机房只能单边写入数据到数据库。
疑问:是否存在主从延迟的问题?
优点:相对架构比较简单,业务适用性比较强。
缺点:主从切换时,存在一定的延迟。数据库的主从切换,需要一定的经验。
后面考虑针对数据库的主从切换深入学习一下。
双机房架构(双主)
说明
如果我们对数据要求没有那么严格,比如风控、预警等系统。
可以设计双主架构。
架构图
图中隐去了数据库的域名解析。
主要调整
写入数据库时,通过统一的 db-proxy 代理层。双写到2个机房的数据库中。
当然,根据 CAP。我们肯定要有所舍弃。
比如报警等场景,我们可以舍弃数据的完全一致性,换来可用性+分区。
优点:机房故障,单边直接数据全量可用,不用做太多事情。
缺点:需要双写同步,耗时比较长,会出现数据不一致的问题。单边停机之后,数据的同步也是需要考虑的内容。
参考资料
https://www.51cto.com/article/781506.html