yuewuzhang/BusinessTransferEngine
Folders and files
| Name | Name | Last commit date | ||
|---|---|---|---|---|
Repository files navigation
========================================================================
BusinessTransferEngine 项目概述
========================================================================
系统面临的问题
一般分布式系统面临的问题
cap 一致性,可用性和支持网络隔离
支持可用性,支持网络隔离,牺牲一致性
牺牲一致性的原则:
尽可能保护期货公司利益,防范客户资金风险
具体问题:
发往某个外部系统的指令特殊性
执行时间不确定,可能很短,可能很长,也可能永远执行不完
返回结果除了成功、失败还有不明
发往同一系统的多条指令可能乱序
依靠数据库来提供事务处理不可行
业务级事务
原子性:回滚时不要求数据库回退到事务发生前,只需要业务回退到事务发生前
业务级操作(读写操作)
读操作:可重复
写操作:可重复,防乱序
逻辑一致性:
隔离性:客户级锁/客户业务级锁
持久性:数据库
业务事务管理引擎
单个业务功能为业务级操作的序列。成功业务的操作序列相同,失败或异常业务的操作序列随出错点不同而不同
测试
任何一个外部系统可以一次返回成功,一次返回失败,多次超时后返回成功,多次超时后返回失败,永远超时
任何一个外部系统可以在n次超时后返回成功或失败,0<=n<=无穷大