提取码:45on
异地多活架构 同城异区 同城异区指的是将业务部署在同一个城市不同区的多个机房,同城的两个机房,距离上一般大约就是几十千米,通过搭建高速的网络,同城异区的两个 机房能够实现和同一个机房内几乎一样的网络传输速度。这就意味着虽然是两个不同地理位置 上的机房,但逻辑上我们可以将它们看作同一个机房,这样的设计大大降低了复杂度,减少了异地多活的设计和实现复杂度及成本
跨城异地 跨城异地指的是业务部署在不同城市的多个机房,而且距离最好要远一些,跨城异地虽然能够有效应对极端灾难事件但“距离较远”这点并不只是一个距离数字上 的变化,而是量变引起了质变,导致了跨城异地的架构复杂度大大上升。距离增加带来的最主 要原因是两个机房的网络传输速度会降低,远不是以人的意志为转移的,而是物理定律决定的,即光速真空传播是每秒 30 万千米,在光纤中传输的速度大约是每秒 20 万千米,再加上传输中 的各种网络设备的处理,实际还远远达不到光速的速度
跨城异地距离较远带来的网络传输延迟问题,给业务多活架构设计带来了复杂性,如果要 做到真正意义上的多活,业务系统需要考虑部署在不同地点的两个机房。在数据短时间不一致 的情况下,还能够正常提供业务 。 这就引入了 一个看似矛盾的地方:数据不一致业务肯定不会正常,但跨城异地肯定会导致数据不一致
跨过异地 跨国异地指的是业务部署在不同国家的多个机房。相比跨城异地,跨国异地的距离更加远 了,因此数据同步的延时会更长,正常情况下可能就有几秒钟了。这种程度的延迟己经无法满 足异地多活标准的第一条 : “正常情况下,用户无论访问哪一个地点的业务系统,都能够得到正 确的业务服务”虽然跨城异地也会有此类同步延时问题,但正常情况下几 十毫秒的延时对用户来说基本无感知的;而延时达到几秒钟就感觉比较明显了
跨国异地 多活的主要应用场景一般有如下几种情况 :
为不同地区用户提供服务 只读类业务做多活
异地多活设计思想
同城异区:关键在于搭建高速网络将两个机房连接起来,达到近似一个本地机房的效果。架构设计 上可以将两个机房当作本地机房来设计,无须额外考虑 跨城异地:关键在于数据不一致的情况下,业务不受影响或影响很小,这从逻辑的角度上来说其实 是矛盾的,架构设计的主要目的就是为了解决这个矛盾 跨国异地:主要是面向不同地区用户提供业务,或者提供只读业务,对架构设计要求不高
跨城异地多活是架构设计复杂度最高的一种架构,然而它还是有一些设计技巧的: