其实银行的核心系统本身,
从应用层面看,就目前的状况来看,应用集中度非常高,但是并不单表说其业务的集中度不可以拆分,比如说联机业务和批量业务,就联机业务来讲完全可以实现分布式部署,就批量业务来讲由于它的业务特殊性,对数据访问的集中程度,最好还是跑在集中式的架构下。
从数据层而看,由于交易系统对数据强一致性的要求以及其数据特点而言,必须是关系型数据库,而且关系性数据库中访问的热点相对比较集中,所以数据库层面来讲,其横向扩展性有,但是并不是非常强,也是目前不能立刻解决的问题。
采用集中式还是分布式得根据系统容量及性能是否满足需求(APP Server一般可以横向扩展,传统关系型数据库难以做的线性横向扩展)、业务峰值是否可预测、系统业务功能臃肿程度、一致性等综合考虑。
一、集中式架构
优点:
1、数据一致性由单库保证强一致性
2、运维管理难度较低
缺点:
1、数据库容易成为性能瓶颈,无法满足大业务量大并发场景需求
2、系统业务功能容易臃肿,高耦合,难以扩展,不利于敏捷快速迭代
3、只能整体扩容,不能以服务或模块按需扩容
4、不利于引入新技术
二、分布式架构
优点:
1、数据拆分,消除集中式数据库瓶颈问题
2、微服务化,灵活分布式部署,按需扩容
3、服务复用,快速组合,降低总拥有成本
4、微服务高内聚、低耦合,便于功能性扩展,有利于敏捷快速迭代
缺点:
1、数据一致性保证,增加应用开发难度
2、节点分散及数量大,增加运维管理难度,需要配套的一体化运维管理工具支持
3、调用链路长,错误率增加,排查困难,需要完善的容错机制支持
分布式架构的搭建需要借助服务化框架解决服务注册、服务发现、路由、软负载、容错、限流、降级等问题,同时可借助虚拟化或者容器技术实现动态伸缩。
收起