阅读笔记(二)
今天我读了支付宝的高可用与容灾架构演讲,感受如下。
企业服务、云计算、移动互联网领域中。高可用的分布式技术为支撑平台正常运作提供着关键性的技术支撑。从用户角度,特别是作为主要收入来源的企业用户的角度出发。保证业务处理的正确性和服务不中断(高可用性)是支撑用户信心的重要来源。
高性能。高可用的分布式架构就成了訪问量高峰期时,站点得以成功运维的关键。
在架构设计中,作为系统高可用性技术的重要组成部分,容灾设计强调的是系统对外界环境影响具备高速响应能力,尤其是当发生灾难性事件并对IDC节点产生影响时。可以具备节点级别的高速恢复能力。保障系统的持续可用。
的多机房多活的第二代架构体系,其优势在于:
-
进行了数据的水平拆分。从而理论上能够无限扩展数据/资源。
-
应用多机房独立部署,不再存在单个机房影响总体的情况;
-
服务调用机房内隔离。通过软负载的方式去做机房内的服务本地化,不再去依赖还有一个机房内同样的服务;
-
相较上一个阶段具有更高、更可靠的可用性。
单元化的核心思想包含核心剥离以及长尾独立。
核心剥离指的是将核心业务进行剥离;将业务数据依照UserID进行拆分。从而实现多机房部署。在此基础上将每个机房的调用进行封闭式设置;每个单元中的业务数据无需和其他单元进行同步。
长尾独立则针对非核心的应用。这些业务数据并不依照UID进行拆分。核心业务并不依赖于长尾应用。
为了解决问题,支付宝团队提出了两种解决方式:
-
基于DB同步的数据复制。针对某些对于延时并不是十分敏感的业务。单就基于主备同步来做数据的同步。
-
基于消息系统的数据复制。因为异地数据同步比較耗时。对于延时很敏感的业务来说,支付宝基于可靠的消息系统做一个数据复制(内部称为数据总线),通过它将上层基于应用去做数据的复制,大概时间位于毫秒级。底层DB主备同步同一时候进行。
通过单元化的系统配置,使得支付宝整个系统架构具有非常强的高可用性和容灾能力。
详细来说有三点:
-
更灵活的流量管控,能够实现以更小的力度和更快的速度来进行数据切换。
-
自己定义化的数据流量分配。
因为每个数据单元须要多少资源、须要支撑多少交易量能够前期确定,因此支付宝能够依照实际的需求量进行单元维度的扩展。
-
高速恢复的容灾能力。
通过单元化之后。不仅使得数据单元内Blue组和Green组之间能够切换流量,再向上一个级别。单元和单元之间、机房和机房之间、同城内数据中心之间甚至城市和城市之间也能够自如地进行故障发生时的应急切换。不仅使得支付宝实现了“异地多活”的架构能力。更使其顺利经过了2015年“双11”的洗礼。
文章引用:高可用与容灾架构演讲