近年来,随着微服务架构的流行,分布式消息引擎在物联网、分布式事务、实时计算和大规模缓存同步等场景中的应用日益增多。本文将分享微众银行基于 RocketMQ 构建消息服务平台的实践,并通过添加诸多高级特性来解决消息收发过程中遇到的各种问题,通过此文,您将了解到:
- 金融行业服务架构的演进历程
- 微众银行的消息服务架构
- 基于 RocketMQ 定制的消息高级特性
银行应用架构的演进历史
不管是银行的系统还是其他一些传统企业的系统,他们在最早的时候都使用到了服务总线,即 ESB 或者某种形式存在于 SOA 架构中,目的是把所有的服务都串起来,让服务之间能够形成一个调用。但这类服务架构其实是比较重的,所有的服务架构都要经过总线,总线成为了架构上的瓶颈。很多商业化的 ESB 总线大家可能都用过,像 Oracle、IBM 等都有。从服务调用的维度来看,银行的应用架构的演进经历了以下 3 个阶段。
- 第一阶段:90 年代中后期分布式架构
这个阶段的架构具有以下 3 个特点:
-
将总行的集中式系统在各个省分行分别都部署一套,每天晚上再以批量处理的方式将各省数据进行集中。
-
这种架构的方式能够最快的解决联机性能问题, 但存在跨省转账交易无法实时到账的问题。
-
系统发布的实时性是硬伤。
- 第二阶段:2000-2010 年集中式总线架构
这个阶段引入了 ESB 总线的理念:
ESB 总线为渠道、核心和外围系统建立了一座桥梁,提供完全统一的接口标准协议,提升了系统发布的实时性。但同时,ESB 成为了最大的单点,要支持大并发高 TPS 低延时,所以 HA 和性能要求非常高,变更需要相当谨慎。
- 第三阶段:2010 年之后的互联网金融服务架构