疫情之下,核心系统架构转型“平衡术”( 五 )

所谓“CAP” , 是指Consistency(一致性) , 由于分布式环境存在多个节点 , 这些节点上的数据在同一时间所存储的数据必须是一致的 , 这就是一致性协议;Availability(可用性) , 即任何时刻需要保证服务的可用和稳定;Partition Tolerance(分区容错) , 即某个时刻出现网络或者硬件不可用 , 甚至宕机 , 其它的机器也要能保证正常可用 。 在分布式系统架构下 , CAP三件事不能同时兼得 。 从实践上来看 , 只能通过妥协的方式达到一定程度的兼顾 。

与此同时 , 分布式架构或系统严重依赖网络的服务水平 。 采用廉价的、不可靠的硬件的分布式架构 , 希望通过冗余的方式达到可用性指标 , 这里面的沟通和协调工作很繁重 。 网络的质量和性能成了分布式系统的生命线 。 然而 , 网络本身也是一种有限资源 。 例如 , 带宽是有限的;速率是受限的;延迟是不可避免的……

再如 , 分布式是一个很庞杂的系统 , 包括服务器、支撑软件、应用软件、路由器、交换机、网络带宽、信息安全等等都需要人员维护 , 特别是在当前疫情肆虐的当下 , 最大限度的减少运维人员暴露在现场 , 降低感染几率也十分关键 , 而这也给分布式架构的运维管理工作带来了更大的挑战和压力;此外 , 迁移成本方面 , 目前主流数据库仍是集中式数据库 , 同种类型迁移简单 , 如果替换为分布式数据库 , 应用系统几乎要推倒重来 迁移成本和风险也巨大 。

推荐阅读