2. 核心银行系统架构
核心银行系统是银行所有存贷汇业务的账务权威源,它的架构选择直接决定了可靠性工程的工作方式。理解集中式与分布式、主机与开放平台、数据库与中间件的组合关系,是后续做容量规划、故障演练和变更管控的前提。本节从架构形态、平台选型、数据与中间件、交易链路四个角度展开,帮助建立端到端的系统视图。
一、核心原理:集中式与分布式是两种可靠性哲学
集中式架构把账务处理、数据存储和事务控制集中在一台或一组紧耦合的大型主机上,典型代表是 IBM z 系列主机配合 DB2 或 IMS。它的核心优势是单点强一致:所有交易在同一事务域内完成,跨账户转账天然原子,故障域清晰,纵向扩展能力强。代价是硬件与授权成本高、技术栈封闭、横向扩展困难。
分布式架构把业务按领域拆分为多个微服务或分片单元,数据按客户号、账号或机构分库分表,通过服务注册、分布式事务或最终一致性协议协同。它的优势是弹性扩展与容灾灵活,可以按业务量独立扩容,机房级故障可切换。代价是引入了网络分区、数据一致性、分布式事务和链路追踪等新的可靠性问题。
二、平台选型:主机与开放平台的边界
主机平台(Mainframe)通常承载最核心的存款、贷款、总账和清算,特点是高 IOPS、高可靠、强事务、成熟批处理。开放平台(x86、ARM、容器云)承载渠道、网关、产品工厂、部分互联网核心和外围系统。实际生产中,多数银行采用主机+开放平台混合架构:主机做账务权威,开放平台做渠道接入和业务编排。
混合架构下,可靠性工程要特别关注跨平台调用链。主机侧通常通过 CICS、MQ、IMS Connect 暴露服务,开放平台通过 ESB 或 API 网关调用。跨平台链路的超时、重试、幂等和补偿策略,是故障扩散的高发区。
三、数据库与中间件:可靠性的承重墙
核心银行的数据库选型通常分三类:主机侧 DB2 for z/OS、开放平台 Oracle/DB2、以及新兴的分布式数据库(如 OceanBase、TDSQL、GoldenDB)。选择时重点评估事务隔离级别、两阶段提交支持、主备切换 RTO/RPO、以及分片后的跨片事务能力。
中间件是连接应用与数据的枢纽,常见组合如下:
| 中间件类型 | 典型产品 | 可靠性关注点 |
|---|---|---|
| 消息队列 | IBM MQ、Kafka、RocketMQ | 消息不丢、不重、顺序性、积压告警 |
| 事务协调 | Seata、TCC、Saga | 悬挂、空回滚、幂等、补偿失败 |
| 数据访问 | ShardingSphere、MyCat | 分片路由、跨片查询、主从延迟 |
| 服务治理 | Nacos、Consul、Eureka | 注册中心脑裂、健康检查误判 |
| 缓存 | Redis、Tair | 缓存穿透、雪崩、与DB一致性 |
四、典型交易链路与故障场景
以一笔跨行转账为例,完整链路通常包括:渠道发起、网关鉴权、产品与限额校验、主机记账、消息通知、渠道回执。每个环节都有对应的可靠性设计。
- 渠道发起:客户端生成全局流水号,作为后续幂等键。
- 网关鉴权:校验令牌、签名、限流,失败快速返回。
- 产品校验:检查账户状态、余额、限额、黑名单。
- 主机记账:CICS 事务内完成借贷记账,返回交易码。
- 消息通知:通过 MQ 异步通知短信、风控、对账系统。
- 渠道回执:根据主机返回码组装响应,超时则进入查询补偿。
下面是一段典型的交易日志片段,用于说明链路追踪的关键字段:
2024-06-12 10:23:45.312 [gateway] traceId=TRX20240612001
channel=MOBILE userId=U88321 amount=5000.00
status=AUTH_PASS
2024-06-12 10:23:45.487 [core] traceId=TRX20240612001
hostTxn=CICS01 respCode=0000 acct=6222****1234
2024-06-12 10:23:45.612 [mq] traceId=TRX20240612001
topic=NOTIFY_SMS status=SENT
2024-06-12 10:23:45.701 [gateway] traceId=TRX20240612001
status=SUCCESS elapsed=389ms
五、复盘:架构选择如何影响可靠性工程
集中式架构下,可靠性工作重心是主机资源监控、CICS 区域健康、DB2 锁等待和批处理窗口。分布式架构下,重心转向服务依赖拓扑、链路超时、分布式事务补偿和分片均衡。混合架构则要求同时具备两套监控与应急体系,并重点治理跨平台链路的超时与重试。
掌握本节内容后,你在后续做容量评估、故障演练和变更评审时,就能快速判断一个改动影响的是主机侧、开放平台侧还是跨平台链路,从而选择正确的监控指标和应急预案。