一、遇到的问题
1. 系统解耦
交易涉及系统众多,系统之间需要解耦,避免互相影响。
2. 数据到达时间差
系统之间数据到达会有时间差,保证不同时间到达的数据能够聚合计算。
3. 数据一致性
保证数据不丢失,不会因为数据丢失造成对账结果异常。
4. 跨区域数据传输
系统部署分布在不同的地区,需要进行跨区域的数据传输。
二、问题解决
我们将根据上面提到的问题,使用 TDMQ Pulsar 版的解决方式。
三、1. 系统解耦问题
直观的看,为了实现各个系统之间的对账,我们可以直接将消息上报给对账系统,对账系统负责接受消息并进行对账处理。但是这里又面临一些问题,这里需要对接的系统很多,并且系统还会不断的增加。这样会花费大量的时间在系统之间的对接上,并且对现网的系统流程的侵入性就会非常大。显然,这样的设计是非常不合理的。我们通过 TDMQ Pulsar 版的引入,使得系统之间只需要和 MQ 进行统一对接,这样单个系统的问题也不会影响到其他服务。
四、2. 数据到达时间差问题
对账需要进行各个系统之间的数据聚合,要想进行实时的数据聚合,正常情况下数据到达的时间不会相差太大,但是因为系统之间的流程总是会有先后,当一个系统的数据延迟之后,为了能够实现数据的聚合,我们需要控制数据的读取速度,以免大量数据进入到对账系统中等待。通过 TDMQ Pulsar 版的暂时存储消息,使得同一时间的数据到达时间大致相同。
五、3. 数据一致性问题
TDMQ Pulsar 版提供高一致的可靠数据存储,保证数据不会丢失,同时提供高可用的服务,异常情况下能够快速自动修复。
六、4. 跨区域数据传输问题
TDMQ Pulsar 版提供两种方案来实现多个城市之间的数据复制,为业务层提供实时数据复制通道。
·对于非常重要的数据需要满足跨城容灾级别的场景,可以支持多个区域之间进行强一致性的数据同步,使得消息的存储分布在不同的区域。
·对于一些数据并不需要强一致要求的场景,TDMQ Pulsar 版提供多城市之间异步复制方案,来达到多地数据最终一致。
两种跨城同步方案的对比如下:
| 跨城方案 | 生产耗时 | 容灾性 | 存储成本 |
| 多城市强一致 | 高 | 高 | 少 |
| 多城市最终一致 | 低 | 低 | 多 |
通过引入 TDMQ Pulsar 版和实时计算的能力,我们将交易对账从按天的模式发展为实时对账的模式。更加快速的检测交易的准确性。