异地多活架构的关键点就是异地、多活,其中异地就是指地理位置上不同的地方,多活就是指不同地理位置上的系统都能提供业务服务。
异地多活虽然功能强大,但是不是每个业务不管三七二十一都要上异地多活。
如果业务规模很大,能够做异地多活的情况下尽量实现异地多活。
异地多活架构可以分为同城异区、跨城异地、跨国异地。
同城异区是指将业务部署在同一城市不同区域的多个机房。
同城异区的两个机房能够实现和同一个机房内几乎一样的网络传输速度,这就意味着虽然是两个不同地理位置上的机房,但逻辑上我们可以将他们看作同一个机房。
扩成异地指的是业务部署在不同城市的多个机房,而且距离最好要远一些。
跨城异地距离较远带来的网络传输延迟问题,给业务多活架构设计带来了复杂性。
跨国异地指的是业务部署在不同国家的多个机房。
跨国异地主要适应两种场景:为不同地区的用户提供服务,为全球用户提供只读服务。
异地多活设计技巧一:保证核心业务的异地多活。
异地多活设计技巧二:保证核心数据最终一致性。
异地多活设计技巧三:采用多种手段同步数据。
异地多活设计技巧四:保证绝大部分用户的异地多活。
降级的核心思想就是弃车保帅,优先保证核心业务。
限流指只允许系统能够承受的用户量进来访问,超出系统访问能力的用户将被抛弃。
排队实际上是限流的一种变种,限流是直接拒绝用户的访问,排队是让用户等待很长时间。