数据的分类

状态型数据,需要三地五中心容灾,需要强一致性,事务延迟较高。对状态型数据的操作实际上是对同一行记录进行反复操作。

流水型数据,对历史数据依赖较少,每一笔业务相对独立。

基于一定的业务理解和假设,我们可以设计出一套新的模型和存储方案,实现流水型 FO。

部署形态

通常流水型 FO 要求部署三套库。

  • 主库
  • LFO 库 同城 FO。承担机房级故障。
  • RFO 库,异地 FO 库。承担区域

数据格式

8 位日期 + 1 位数据版本 + 1 位系统版本 + 3 位系统标识 + 2 位预留 + 2 位 uid + 2 位弹性位 + 8 位 sequence

设计数据格式影响几个问题:

1 当系统发生一笔流水的时候,流水应该落到哪个库里去。
2 当我需要一笔流水时,我应该从哪个库里面查询这笔流水。

有关联关系的单据,如果发生弹性切换,要保证正逆向流程的单据都弹到一个库里。

流水型 FO 方案如何做到业务无感知?

???

流水型 FO 发生强切的时候如何保证业务业务无损?

???