分布式多活的实现思考

栏目: 后端 · 发布时间: 4年前

内容简介:背景

分布式多活的实现思考

背景

分布式多活的实现思考

在互联网技术蓬勃发展的时代背景下,传统的IOE架构已很难满足当前复杂多变的业务发展的需求。对于传统集中式的IOE架构,由于其缺乏灵活的水平伸缩能力,容量规划容易遇到天花板。不仅不能高效的处理海量客户与账户数据,而且对如秒杀、促销等顺时爆发海量交易的业务场景亦很难实现。这些传统架构的短板也制约业务发展,并已无法适应科技金融银行的发展要求。因此,新的科技体系必将基于分布式多活技术架构,才能支撑起未来全面数字化的海量客户请求和庞大运算任务,成为一个能够处理大规模、多渠道、高并发、多金融业务融汇交叉的智能IT架构。

分布式多活的实现思考

分布式多活的实现思考

基本原则

分布式多活的实现思考

与传统IOE架构形成鲜明对比的分布式多活架构体系,由互联网应用需求推动,逐步发展成熟,也使得分布式多活技术不断完善,形成稳定的技术栈以及生态圈;同时银行业对也在不断探索、研究分布式技术,逐步积累经验,使得构建基于分布式架构的银行业务系统成为科技金融成为不二的选择。
结合某行自身业务特点,利用“两地三中心“的灾备架构,基于成熟的理论,在分布式多活设计的应用架构建设过程中,通过对现有技术架构的认真研究,从以下几个维度对分布式多活设计原则作了归纳总结:
1、 一致性: 所有节点拥有数据的最新版本,可分为强一致性和最终一致性。按照业务特性,挑选出哪些业务数据必须实现强一致性,哪些业务可以选择最终一致性。例如账务处理类的业务,必须做到强一致性,如果不能做到强一致性,漏洞一旦被黑客发现,发起大量交易,巨大的经济损失不可避免。而对于一些客户信息类的业务,可以选择数据最终一致性。故在系统架构设计时根据业务特性选择合适的技术满足业务数据一致性要求。
2、 可用性:是指一个系统的服务一直可用,而且是正常响应时间。分布式存储系统需要多台服务器同时工作。当服务器数量增多时,其中的一些服务器出现故障是在所难免的。我们希望这样的情况不会对整个系统造成太大的影响。在系统中的一部分节点出现故障之后,系统的整体不影响客服端的读/写请求。
3、 分区容错性:分布式多活系统中的多站点及多台服务器通过网络进行连接。但是我们无法保证网络是一直通畅的,分布式系统需要具有一定的容错性来处理网络故障带来的问题。一个令人满意的情况是,当一个网络因为故障而分解为多个部分的时候,其他站点的系统仍然能够工作。
4、 兼容性:架构设计时需要一定程度兼顾传统应用与分布式系统的兼容性,考虑银行传统架构的特点,对其他系统的接入提供良好的接口。
5、 安全性:网络技术的发展,一方面,使得数据库领域的分布式有了很大的发展。另一方面,给分布式系统的数据安全带来了严重的威胁。对此,分布式系统的安全防护策略,对数据库的“入口”进行严密的把关。但是,由于安全问题一般都具有复杂性,单独使用某一种方法都是不够的,通常情况下需要多种安全机制相结合。但是由于不安全因素无处不在,而且有不可预见性,是一项不可松懈的任务。
6、 柔性:确保架构组件的有效协同,共同支持业务流程的处理,能够支持弹性扩缩;同时能够轻松地适应基础技术变化,支持较新的技。

分布式多活的实现思考

分布式多活的实现思考

实现思考

分布式多活的实现思考

以ITIL为基础,从项目管理、运维管理的角度,给出一个完整的实现思路。思路主要分为:业务需求分析、技术架构设计、技术平台建设和多活运维支撑四个阶段。
1) 业务需求分析
以业务连续性为根本,根据业务特点,从业务特征、弹性伸缩、实施成本、运行风险、运维难度的五个不同维度对应用项目进行详细的需求分析,对于不同维度评估、讨论、实验,从而形成一套或多套业务选型方案。并从打分结果,可以很直观的评估出系统的特点,以及在不同维度的分布式适合度。
2) 技术架构设计
同时从不同维度进行集成架构分层,主要分为:接入层、应用服务处理层和数据层。各层之间的架构设计模型如下:
        其中接入层主要实现1)外联区实现横联保护 2)网络架构尽量具备自愈合能力 3)提供逻辑上的统一接入能力;应用服务处理层按业务拆分,按单元分片建立连接,实现逻辑机房单元化架构,具备自包含性、松耦合性、故障独立性、容灾性。
3) 技术平台建设
业界近年来涌现了各种新技术、新产品,各有特点,但分布式多活并不是机械的堆砌各种新技术根据业务需求,通过对基础设施以及分布技术的选型,结合银行业务特点,构建合理的分布式多活架构,应从基础设施层、应用层等众多技术中选择适合相应系统的分布式多活技术。技术平台建设重点需要从基础设施框架和应用管理框架着手。
基础设施层面在于构建分布式多活的数据中心基础之上,利用私有云平台统一基础设施。在网络层可以选用二/三层分布式多活、DNS、GSLB,数据采用存储的同步/异步,NAS的分布式多活、分布式数据存储等技术,在此基础之上实现底层云的搭建和容器平台的建设工作。
应用管理框架基于应用开发PaaS平台,设计遵循分布式事务、服务、配置、数据和批处理原则,场景选择具备两大特点:其一是以跨云的分布式应用为场景,创新应用开发和生命周期管理模式;其次是以容器化、容器集群搭建资源管理、应用管理的基本框架。
4) 分布式多活运维支撑
对于分布式多活场景的下,传统的运维集中化、自动化、可视化与智能跟踪将面临改变,如何管理应用发布流程、如何架构新的监控体系、如何实现自动化故障发现和切换、如何进性高效资源调度,都需要重点关注并进行解决。
可以看到,需要解决的问题包含服务治理、分布式管控平台、应用的查询、运维的试点、硬件起动监控平台、运维操作的自动化、持续交互以及分布式统一平台;机房切换自动指挥平台、应用排除可视化;实时交易分析、实时链路分析、运维架构可视化;还有云服务系统,包括服务跟踪的智能化、日志分析一体化,还有服务跟踪等问题。

分布式多活的实现思考

分布式多活的实现思考

技术难点

分布式多活的实现思考

1)数据一致性问题

对于业务数据的一致性是至关重要,保障数据一致性是实现分布式多活的前提条件。为了保障数据的一致性主要通过以下四类设计来满足:

分布式多活的实现思考

在分式架构下将在两个层面引发数据一致性问题,我们采用不同的方法来满足数据一致性要求,具体方案如下:

  • 数据副本的一致性:

采用PAXOS/RAFT等分布式算法,确保分布式数据库存储引擎的多个副本间一致性。在故障时,选举leader,剔除不可用副本。

  • 分布式交易一致性:

对于强一致性数据,采用2阶段提交的方式,对于部分成功部分失败的情况,需要发起冲正动作,将成功的数据清除;

对于弱一致性数据,采用最终一致性的复制方式,对于部分成功部分失败的情况,可以发起补偿动作,将失败的数据重做,确保复制成功即可。

对于关键数据,涉及数据核对方式,多维度对数据进行定期一致性核对和数据补偿。

2)网络延时

由于多个数据中心之间的距离问题,网络延时必然存在,减少网络延时对应用业务需求的影响是应对该问题的核心点。通常情况下同城数据中心机房间的距离在100公里以内,网络延时可控制在2ms以内,对应用的影响几乎可以忽略。而在异地数据中心之间的距离一般在几百公里以上。以某行为例,北京与异地数据中心间光纤距离超过很长,广域网延迟约20ms,在这种情况下,为保障数据中心分布式多活业务的开展,一般需要注意:

  • 减少跨数据中心交互次数;

  • 明确开发设计规范,保障不同单元之间有效性应用处理逻辑的,减少非必要交互处理;

  • 尽量实现就近访问本地中心数据,不跨中心数据访问。

因此,降低网络延时影响的最简单办法,是让业务某操作尽量在同一个数据中心完成,这样可有效应对延时的挑战,即业务的单元化;同时还需针对异地不同中心,对启用的应用做区分,涉及到数据库层面可能要分库分表。

3)脑裂问题

脑裂问题是分布式多活建设必须面临的问题之一,为了应对该问题主要从两个方面考虑:其一,设计高可靠的数据中心分布式多活架构,尽量规避脑裂问题的产生,采取的应对措施保行多数据中心之间采用不同运营商的线路进行连接,关键网络连接设备均采用容灾设计;其二,是在脑裂出现之后,能够实现快速的隔离,对上层业务无影响,因此建议采用三地五中心高可用部署(同城两数据中心可读/写,临近城市两数据中心可读/写,远端城市异步可读)。当出现脑裂问题时,通过在多个数据中心之间进行快速选举投票,剔除脑裂中的一个数据中心节点,实现城市级无损容灾、自动故障切换、对上层业务透明。具体设计方案图如下:

分布式多活的实现思考

分布式多活的实现思考

分布式多活的实现思考

总结

分布式多活的实现思考

本文以ITIL为基础,从项目管理、运维管理的角度,给出从业务需求分析、技术架构设计、技术平台建设和多活运维支撑四个阶段上对分布式多活上的实现思考和面临的问题。 希望对分布式多活建设提供参考意义。

分布式多活的实现思考


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

界面设计模式

界面设计模式

[美]泰德维尔(Tidwell,J.) / 蒋芳 / 电子工业出版社 / 2013-9-1 / CNY 119.00

模式意味着重用。 好的模式建立在对人与事物的深刻认知之上。 本书开篇即总结了“与人有关”的各类问题,为读者提供了界面设计总体思路上的指引,帮助读者举一反三。 接下来,本书收集并分析了很多常用的界面设计模式,帮助读者理解在实现级别的各种常用解决方案,将它们灵活地运用到自己的设计中。 同时,随着网络和技术的不断发展,本书在第1 版的基础上,更新了几乎所有的模式示例和说明,并新增......一起来看看 《界面设计模式》 这本书的介绍吧!

MD5 加密
MD5 加密

MD5 加密工具

html转js在线工具
html转js在线工具

html转js在线工具

RGB HSV 转换
RGB HSV 转换

RGB HSV 互转工具