交易对账

最近更新时间:2024-10-14 11:18:55

我的收藏

场景描述

对账是任何一个计费系统都需要的一个辅助系统。无论是对账作为支付的主路或是旁路系统,为了保证计费的准确性,都需要在支付过程中或支付完成之后进行对账。通过引入 TDMQ Pulsar 版,一方面保证了对账的时效性,另一方面也不会影响交易的关键路径。

遇到的问题

1. 系统解耦 交易涉及系统众多,系统之间需要解耦,避免互相影响。
2. 数据到达时间差 系统之间数据到达会有时间差,保证不同时间到达的数据能够聚合计算。
3. 数据一致性 保证数据不丢失,不会因为数据丢失造成对账结果异常。
4. 跨区域数据传输 系统部署分布在不同的地区,需要进行跨区域的数据传输。

部署架构图





问题解决

我们将根据上面提到的问题,使用 TDMQ Pulsar 版的解决方式。

1. 系统解耦问题

直观的看,为了实现各个系统之间的对账,我们可以直接将消息上报给对账系统,对账系统负责接受消息并进行对账处理。但是这里又面临一些问题,这里需要对接的系统很多,并且系统还会不断的增加。这样会花费大量的时间在系统之间的对接上,并且对现网的系统流程的侵入性就会非常大。显然,这样的设计是非常不合理的。我们通过 TDMQ Pulsar 版的引入,使得系统之间只需要和 MQ 进行统一对接,这样单个系统的问题也不会影响到其他服务。

2. 数据到达时间差问题

对账需要进行各个系统之间的数据聚合,要想进行实时的数据聚合,正常情况下数据到达的时间不会相差太大,但是因为系统之间的流程总是会有先后,当一个系统的数据延迟之后,为了能够实现数据的聚合,我们需要控制数据的读取速度,以免大量数据进入到对账系统中等待。通过 TDMQ Pulsar 版的暂时存储消息,使得同一时间的数据到达时间大致相同。

3. 数据一致性问题

TDMQ Pulsar 版提供高一致的可靠数据存储,保证数据不会丢失,同时提供高可用的服务,异常情况下能够快速自动修复。

4. 跨区域数据传输问题

TDMQ Pulsar 版提供两种方案来实现多个城市之间的数据复制,为业务层提供实时数据复制通道。
对于非常重要的数据需要满足跨城容灾级别的场景,可以支持多个区域之间进行强一致性的数据同步,使得消息的存储分布在不同的区域。
对于一些数据并不需要强一致要求的场景,TDMQ Pulsar 版提供多城市之间异步复制方案,来达到多地数据最终一致。
两种跨城同步方案的对比如下:
跨城方案
生产耗时
容灾性
存储成本
多城市强一致
多城市最终一致
通过引入 TDMQ Pulsar 版和实时计算的能力,我们将交易对账从按天的模式发展为实时对账的模式。更加快速的检测交易的准确性。