课程名称:Java架构师-十项全能
课程章节:
可用性概述
本地高可用-集群、分布式
主讲老师:
张飞扬
课程内容:
真正架构的核心是生产系统,生产系统的核心是高可用。架构师的输入是功能性、非功能性需求,包括质量、限制、可用性需求,输出是生产系统,当输出的生产系统是高可用的时候,才能真正承载业务连续性的要求。
可用性三叉戟:旗杆是业务的连续性, 实现业务连续性有三个故障是要防止的:单点故障引发的链路故障导致系统不可用、删库,人员减少,流程问题,软件问题等对可用性的影响、区域性灾难或者数据中心故障导致系统不可用。
本地高可用,是针对生产中心的内部故障。针对的故障类型主要有:服务器故障、硬盘故障、适配器卡故障、网络故障。本地高可用的对单点故障的要求是能快速的回复、自动的接管、实施简单、保证RPO等于0,即数据无丢失。
业务逻辑保护,是针对致命的软件错误和人工失误的报错。针对的故障类型只要有:操作系统崩溃、数据库崩溃、应用服务发布导致系统崩溃。业务逻辑保护对错误的要求是以数据保护为主、进行适当的人工决策、人工干预来保护来恢复数据、人工追溯,保证丢失的数据能够追回。
容灾多活,是针对生产中心的机房或大面积的设备故障。针对的故障类型主要有:HA方案失败、主站点(基础架构)失效、自然灾害等。容灾多活方案的特点是:恢复时间较长、需要手动切换负载、涉及内外多个部门、容忍部分数据丢失、有必要执行灾难恢复计划。
本地高可用
十年以前,大部分的架构师都选择即高可用、又强一致性,采用集群架构,支持3-5个节点。现在很多电商追求强大的扩展性、强大的并发性和吞吐量,很强的I/O性能、QPS、TPS,这时候很可能会选用即高可用、又分区容错的分部署架构,牺牲强一致性,采用最终一致性,通常几十个几百个节点。
集群架构通常采用跟操作系统供应商相对应的应用集群。应用集群:Unix(PowerHA集群)、Linux(RedHat Cluster Suite应用集群)、混合操作系统可以采用第三方软件(Veritas Cluster Server)实现跨操作系统,跨应用,实现统一大集群,对外提供各种服务的跨节点高可用。
集群架构中间件:WebLogic、WebSphere,天生就是高可用,支撑强一致性,但是节点数量不能达到太多。
集群架构数据集群:Oracle RAC、DB2 pureScale、General Parallel File System(强一致性的高可用集群)、磁盘RAID阵列(校验盘、冗余盘)
分布式架构可以采用分布式应用扩展、分布式中间件、分布式数据库。