金融账务系统架构设计

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

差异数据报警
特点三
准确性
一致性
复杂性
原因
充值
基数大
使用场景多
提现
交易量大
频率高 转账
问题
A>B
B>A
死锁
解决
获取账号
排序
顺序更新
事务提交
问题
转出账 户A1
转出账 户A2
转入账 户B
热点账户
转出账 户
A1000
解决
账户拆分
热点账户
同步异步结合
同步变异步
单笔变批量
规划
可配置
服务化
自动化
问题详情
上游系统
平台
下游系统
+1.4567
1.4567
1.4567

1.45
+1.4567
1.4567
1.4567
1.45
-2.91
2.9134
?
2.90
解决方案
分别更新余额、差额
定时差额汇总,补充流水
余额拆分
分别更新
余额校验
定时汇总
拆分为余额、差额
余额+差额>支出金额
思考
账户余额表 A 用 户 号 账户1 余额 A 用 户 号 账户2 余额
客户表 姓名 身 份 证 号
用户关联表
用 户 号
外部用户号
特点一
准确性
一致性
复杂性
问题
0.01
3W
1000W
解决
0.01+0.06 = 0.07
0.06999999999999999 401.49999999999994
Float
特点二
准确性
一致性
复杂性
要求
余额
强一致性
记账流水
实现
插入变更流水
整体提交/回滚
更新余额
插入流水
防重
提交/回滚
获取所有要更新的账户
做防重处理
要求
交易状态
最终一致性
记账结果
实现方式
核对记账时间、条数
收到报警,人工处理
获取数据
核对
报警
异常处理
获取所有的交易数据 、记账数据
实现方式
上游系统
平台余额
平台差额
下游系统
+1.4567
1.4567

1.45
0.0067

1.45
+1.4567
1.4567
1.45
0.0067
1.45
-2.91
2.9134
2.90
0.0134
2.90
效果
余额
余额
差额
1
+0.01
余额
差额
2.90
0.013 4
2
0 -2.91
0.003 4
账户系统的演进
用 户 表 用 户 号 用 户 名 密码 客户ID 用户余额表 客户表
用 户 号
余额
姓名
身份 证 号
账户系统的演进
用 户 表 用 户 号 用 户 名 密码
账户余额表 A 用 户 号 账户1 A 用 户 号 账户2
客户表
姓名 身份 证 号
余额
余额
账户系统的演进
用 户 表 用 户 号 用 户 名 密码
4.015*100 = 401.5
new BigDecimal("0.01").add(new BigDecimal("0.06")) BigDecimal new BigDecimal(“4.015”).multiply(new BigDecimal(“100”))
问题
上游
4位小数
பைடு நூலகம்
平台
2位小数
下游
金融账务系统架构设计
从零到一,构建灵活、高性能的金融账务系统
金融核心系统
账户
记账
日 日 终
场景
钱包
发 工 资
Happy
整体介绍
How
Exactly
When
Left
Where
账户系统的演进
用 户 表
用 户 号
用 户 名 密码 余额
用 户 表
用 户 号 用 户 名 密码
用户余额表 用 户 号
余额
相关文档
最新文档