分布式|首发丨阿里云刘伟光:3.5万字拆解「核心系统转型」,核心从业者怎样寻得「出路」?(19)


单元化架构的核心原则是单元内流量封闭,这样将同一笔业务处理的上下游链路均在同一个单元内完成,避免了中间跨地域调用的网络延迟。为了实现单元化架构,需要围绕两个方面来设计系统能力,一方面是数据分区,另一方面是交易路由:

  • 数据分区:对于数据的存储至少需要具备两项能力。其一是数据分区拆分,即是把数据按照某一个维度水平划分开来;其二就是系统业务数据分区所用的拆分维度和拆分规则都保持一样,确保同一条交易在整个链路中各个业务系统的数据分区是一致的,避免出现因拆分规则不一致导致的跨单元访问;
  • 交易路由:一笔交易链路中能够按照预先设计的单元流量规则进行流量的路由和转发。
1.经典单元化
采用中间件来实现单元化的方案,在头部互联网公司和一些大中型金融机构获得了广泛实践,并且获得了广泛的技术收益,我们称之为“经典单元化”架构。
经典单元化架构对中间件、数据分区和运维体系都提出了相应的能力要求:
  • 中间件能力要求:各中间件(API网关、服务框架、消息队列等)集成单元化路由能力,并且能够通过全局的动态配置中心实时修改并准确推送路由规则到各中间件,实现单元化的切流。例如:API网关能够根据路由规则选择合适的单元进行调用分发;服务框架能够根据路由规则进行服务提供者路由、消息队列能够根据路由规则进行消息跨单元投递
  • 数据分区能力要求:数据按同一维度水平拆分;数据分片按地域部署,各数据分片在同城和异地均有副本,数据库分片主备副本可随时切换;非容错场景各机房应用只访问本单元数据分片,容灾场景可直接访问同城的数据分片;
  • 运维体系能力要求:支持单元化架构下的监控、容灾切换、应急预案等能力。
2.动态单元化
经典单元化架构中,对应用数据分区和中间件能力建设提出了很高的要求,系统建设成本较高、实施周期较长。
伴随技术的演进,分布式数据库、服务网格技术逐步成熟,并已在头部互联网企业获得了广泛应用,这些新技术应用也为单元化架构的实现带来了新的思路。
仍然从单元化架构落地需要具备的两项能力出发,数据分区和交易路由:
  • 分布式数据在线分区调整与扩容能力:传统实现数据分区的方式是数据结构上增强拆分键用于分库分表后的数据访问路由。这种方式一旦投产后数据拆分规则就不能随意进行调整,如迫不得已必须调整,则要进行数据拆分的重新分布迁移,对业务连续性会有较大的影响。分布式数据库依靠自身的分区技术可以实现对应用相对透明的数据扩展能力;支持在线分区调整的能力则对单元化架构下实现数据分区的在线调整提供了可行性;
  • 服务网格统一管理路由规则能力:服务网格技术是将中间件等能力下沉,实现原有各中间件的功能。同样,对于单元化的路由,也可以下沉到服务网格统一处理,减少单元化架构落地实施时对各中间件的能力需求。
  • 通过服务网格加分布式数据库的单元化方案,因为可以根据业务需求而动态的调整分区和路由规则,所以我们称之为“动态单元化”方案。
3.3.5基础资源设施
基础设施层具有高度开放性和弹性扩展能力,可以灵活适配、稳定管理不同类型的基础设施,为核心系统的自主掌控和降本增效提供无限可能。
云原生架构下的基础资源设施层面,应重点考虑以下几方面: