银行核心系统的微服务设计经验分享
如果无法正常显示,请先停止浏览器的去广告插件。
1. 银行核心系统的微服务设
计经验分享
金融壹账通
吕书峰
2.
3. Agenda
1. 核心系统的业务领域整体介绍
2. 核心系统微服务转型的痛点举例分析
从如下几个方面分别举个典型例子分析
核算
事务处理
批量
支付
3. 核心银行架构在国内和海外的影响因素对比
4. 降低运营成本-从微服务到开放银行
4. • 云原生的数字化银行核心平台的整体产品视图
数字化银行解决方案
整套业务解决方案
场景金融端产品和服务
以及高效运营支持
Openbank API平台
APP (android/IOS)| H5 | Pad API发布门户|Sandbox|网关|管理后管
IT及业务运营
运营管理ICMS(核心、支付) | 核算管理门户 | 参数运营管理 | IT
运营及配置管理(调度、监控、权限等)| SSO
Payment
Digital Deposit Digital Lending
大额存单|集团账户|结构化存款 额度 |分级控制 | 贷款管理 | 客户关系 | 产品管理
支付管理 | 对账及争议处理 | 第三方 | IBPS | CNAPSII | UPI
| VISA | Master
基础核心API(包括API编排引擎)
云原生基础核心平台
存款账户
外汇
核心应用框架
Infrastructure*
借记卡
DSU管理器
贷款账户
独立核算
分布式调度
批处理
产品&定价
数据引擎
Cloud Platform
IaaS | PaaS | Compliance&Security
Professional Service
Business As Usual Support
*coorparate with leading Cloud Provider,e.g. PAT, AWS, TencentCloud, Azure, etc.
参数管理
安全组件
客户信息
消息模板
用户管理体系
基于基础核心的中台产品层
账户管理 (customer onboarding)
5. • 核心系统的业务领域架构模型
核心系统设计
• 核心银行领域模型
• 核心引擎由服务编排、流控制、调度器和DSU控制
器组成。
• 在核心引擎的基础上,开发了基本的核心银行服务,
涵盖存款、贷款、客户信息、会计和常见功能,均
以标准API提供服务
• 为运营效率提供核心统一后管
• 为最佳用例实现的多个设计模式,例如在利息计算
的模块上应用事件源解耦原有实现实时批处理。
• DSU用于管理分布式计算需求以及多实体。
6. • 业务模型构建的层次划分
Core
Banking
Core Banking
Micro Service
Customer
Deposit
Loan …
Flow
Domain Entity Relation
Attribute/Object …
Individual
Corporate
Account
Balance
Transfer …
Core Banking API Layer
Cash Management
Deposit Product Mgt
Lending Product
Money Movement/Payment
7. 从传统架构到微服务转型
影响因素
Domain
Analysis
Legacy Architecture
Information Security and risk management
Data classification
Testing
Enterprise risk management
Modernization
Finance
Operations
Human Resources
Application teams
Business units
Cloud
Computing
Migration
DevOps
Application
Re-
architecture
8. 核心系统的微服务转型 – 核算的问题
核算与交易分离为什么? 性能,扩展性,适应性,易管理
核算管理和财务管理 记账,算账,管账的问题
全行级统一 vs 按领域分体? 产品、机构管理,地区和法人实体
9. • 核心系统之核算分析
个人 企业 行业特点
业务模式 产品服务 管理要求
明细核算
按账户进行核算,反应
资金运动详情。
设计要点
• 解耦前端业务与后端账务
• 账户体系与服务接口
异步核算
日终核算
交易核算
• 异步记账,日志是关键
• 补偿 – 实时/准实时/offline
综合核算
按科目进行核算,反
应资金运动概况。
10. 核心系统的微服务转型 – 事务模式的分布式
事务模式 要么完全成功,要么回滚所有
为什么分布式? 性能的伪命题,领域划分的新难题
更好的分布式? 别被微服务蒙蔽了双眼
11. • 事务控制之异步处理 – 转账的例子
我们经常说交易与核算分离,这个含义有很多业务场景的应用,这里看一个交易的异步事务处理
基于领域事件微服务模式
事务性模式
Domain Event
Leg A
Debit customer Account
Credit GLa
Leg B
Credit customer account
Debit GLb
冻结/解冻处理
余额更新
交易明细登记
动账通知
推送会计明细
状态字校验
12. • 分布式一致性 – 总体原则:尽量避免分布式事务
普通交易
高频热点交易 事后对账机制
• 使用Saga模式+事后对账机制 • 作为分布式交易的兜底机制
• 工作量较大、仅适用少数交易场 • 对账出现问题及时报警并交由人
银行动账类交易没
有普通的!
• 利用AT模式,以最小的代价实
现分布式事务。
• AT模式在正向交易下可实现一
定程度的高并发
• 在热点账户情况下存在脏写问
题,Seata给出的解决方案是乐
观锁,这个在热点账户场景下
不适用
• ……
工处理
景
• 在正交易过程中可以保证高并发
• 可能会产生某些情况下余额出现
负值的情形
• ……
SAGA
• ……
TCC
记账前检查/正交易/冲
正/查证 资源占用/确认/占用取
消
事务隔离级别低 事务隔离级别高
业务侵入度低 业务侵入度高
可兼容异构系统 只适用于同构系统
事务中断可补可冲 事务中断只冲不补
13. • 分布式事务 – 转账的例子 ②
①执行借方交易逻辑,先进行
扣款等操作,将容易出现问题
的操作尽早地提前执行。
②根据客户号或其他关键词查
询贷方账户所在分片号并缓存。
GSS
DSU1
Gss客户
GSS客
户端
端
DSU2
③
网关
存款应用
存款应用
①
• 使用Seata作为分布式事务
控制器。
• 使用Saga模式支持分布式
长事务,确保数据一致性。
• 每个步骤都需要准备对应
的逆向操作(红冲)。
③根据目标分片号过滤出
目标网关地址,将请求发
送到目标网关地址。
④执行贷方交易逻辑,贷
方交易逻辑出错概率较低,
提高分布式事务成功率。
④
DB1
DB2
使用Saga模式保证数据一致性
Seata
• Saga模式在第一阶段
时就提交本地事务,
无锁表,可以支持热
点账户、支持高性能
高并发交易。
14. • 分布式事务 – 转账的例子(AT模式)
交易入口
GSS
外部寻址
成功?
活期转账:1000元
A账户原账户余额Ab,转出1000
元,B账户原账户余额Bb,转
入1000元。
账户分片:A 账户 DSU1
B 账户 DSU2
会计分录
借:账户A
贷:账户B
GSS
内部寻址
借方记账
借:A账户1000元
数值运算=Ab-1000元
失败
返回
贷方记账
SEATA
分布式机制
成功
成功?
成功?
失败返回
失败
恢复
原数据
贷:A账户1000元
数值运算=Bb+1000元
成功?
失败
调用 SEATA 分布式机制
调用 壹账通 分布式AT处理机制
原数据Ab
直接把Ab赋值给余额
返回
成功?
DSU1
失败
定时对账/平账处理
DSU2
15. 核心系统的微服务转型 – 批量的问题
批量做什么? 高效率的同时- 数据应用的依赖性
集中式批量vs分布式批
量 运营体验问题 – 错误恢复,多国家/
多实体问题
Cutoff与24*7,批量的
未来? 以客户为中心
16. • 批处理的微服务设计 – 利息计提举例
• 存款利息计提 – 大规模批处理中占比较高
• 涉及多种交易的核算影响 (reverse,backdated,future dated,cross payment cycle)
• 利率的变化和作用期限要求
• 常规付息和按需付息
• 问题检查的便利要求
• Cutoff影响
• 产品特性的扩展支持能力
17. • 存款计息分析 – 应用CQRS & event sourcing
COMMAND SIDE
QUERY SIDE
CORE. CMD.
ICMS. QUERIES.
(1) Send a single accrue command
(2)
Accrual calculation
based on balance
and interest
aggregation
(9) Query accrual detail
Balance
&
Interest Aggregation.
Data Storage
(Materialized State)
(8) Update accrual result
(6) Update instance of aggregate
to materialized views
by @EventSourcingHandler
Event Storage
dispatch
(5) Accrual event persistence
(3)
Event
Handler
Event Bus
(4)
(7) Accrual event persistence
dispatch to @EvengtHandler
Create single
accrual event
event
18. • 存款计息分析 – 上下文
Saving
Loan
ODS
Accounting
backoffice
2
Persistency
Domain Service
Domain Event based on Interest Aggregation
Domain Event based on Balance Aggregation
Single Accrual Evt
Aggregation
Interest Payment Evt
Accrual service
Payment service
Interest Adjustment Evt
Accrual Agg.
SOD balance evt
……
Balance Agg.
Product Attribute、Account Balance、Interest Rate
2 Interest calculation、Accounting entry、Enquiry
Product
Reversal Evt
……
Reversal service
1
Massive Accrual Evt
Interest Payment Evt
Reversal Evt
……
1
Account
Interest Rate
19. 核心系统的微服务转型 – 支付的问题
支付复杂度的提升 第三方兴起,互联网冲击
反洗钱和交易风控 合规和安全面临挑战
外部不可靠性 支付体系本身不健全
20. • 容错性支付举例 – 状态控制
by George Spanoudakis
* https://www.researchgate.net/figure/Simplified-state-machine-of-a-Payment-in-a-Payment-Service_fig5_4187358
21. • 容错性支付举例 – 流程控制
22. • 国内外监管,风控,支付环境等的差异带来对架构设计的影响
客户
• 由于海外(尤其东南亚)的客
户没有统一的身份识别号,也
并没有像国内的实名认证机制,
针对这种情况。
• 多变的客户信息校验思路
• 新平台旧渠道
支付
• 海外市场第三发支付机构复杂多样,
增长迅速,需要做适配改动的频率
很高
• 尤其需要考虑内部领域的业务逻辑
的共性和差异性
• 外部差异如何在频繁改动中降低对
支付整体系统的影响
• 支付渠道本身能力/设施的良莠不
齐
国内外对比
部署
• 对于云部署的接受程度较高
– 云原生
• 数据托管服务 - 托管模式的
差异
• 数据保护 – 微服务由于数据
保护需要而不得不采取的折
中或补偿
• 跨境问题
23. 风控合规风险
2021US fraud lost56billion,49billion
Over industry – financial - 364 cases, Gov&pub - 189 cases (per KPMG)
2021年 5 biggest AML failure
In August 2021, the Financial Times detailed a report by governance and risk consultancy Kroll which
found authorities levied almost $1bn of AML in 17 big actions during the first six months of 2021.
ABN Amro: €480m
NatWest: £264m
Credit Suisse: £147m
JPMorgan: $125m
Deutsche Bank: $120m
共同的理解是:靠技术防范、降低损失
24. • 国内外架构差异 – 趋势
自主
可控
风险
防范
信息
安全
风控合规
云原生
分布式
技术
去中心化/
无核化
核心趋势
25. • 帮助显著降低运营成本- 开放银行的设计理念
开放银行、平台银行
自助式服务
• 订阅和自助配置
• 配套工具
• 多做运营,少碰IT
API驱动
自动化
• 内外一致
• 分层服务
• 容器云
• 分布式追踪/可视化
• RPA/FlowEngine
走出去
引进来
26.
27.