两地三中心,是有钱的公司,为保障数据安全和高可用,一个常见的需求,通常指的是 “同城双活,异地备份”。
2 + 1 = 3,从描述上来看,就知道它们之间是有阶级属性的。
异地备份的机房,level上自然就比同城双活的两个机房低了一个档次,否则也不会沦为备胎。辩证地看待这个问题,我们就能够自如地处理感情上脚踏多只船的问题。
1. 部署结构
为了描述方便,我们把同城的两个机房,称为A和B。把可怜的备份机房,称作机房C。
同城的两个机房,距离上自然就近了一些。我们可以用图直观地表示一下这个距离差异。
所以这个备份机房,非常的没有存在感。实际上,它也非常的有自知之明,只把自己放在一个备份的场景,能够接受非常大的请求延迟和比较长的数据不一致窗口。
这么算下来,就只剩下A和B两位陪你玩了,此之为双活。
2. 奇数节点的意义
双活的意思,是两个机房要同时对外提供服务。运行在不同机房的服务,分为两种,一种是有状态的,一种是无状态的。
无状态的服务,由于自身并不存储数据,只是作为传话筒,处理上自然行云流水,没什么值得好讨论的。
难搞的是有状态的服务。即使它像鱼一样记忆只有5秒,这部分记忆依然会对整个系统提出了高标准的要求-