转账方案设计

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/yangguosb/article/details/81537785

数据一致性方案

方案1

  1. A业务处理和消息发送在同一个本地事务中执行,执行完成后本地消息表中有条status=0记录;
  2. B收到消息后,在同一个事务中进行业务处理和消息发送(返回响应);
  3. 如果B处理失败,由Broker进行失败重试;
  4. A收到响应消息后更新对应的消息状态为1;
  5. A端本地会启动定时任务,定时扫描状态为0的消息,发出告警,甚至进一步可以执行数据补偿操作;

这里写图片描述

方案2

  1. A业务处理和消息发送在同一个本地事务中执行,执行完成后产生一条业务记录;
  2. B收到消息后,进行业务处理,处理完成数据库产生一条业务记录;
  3. 如果B处理失败,由Broker进行失败重试;
  4. 所有坏账通过对账系统进行发现和处理;

这里写图片描述

可靠性方案

方案1:传统的数据库主备方案

缺点:

  1. 主备系统需要自己运维,特别是跨地域容灾时运维成本更大;
  2. 主备切换时,要么服务不可用,保障数据强一致;要么服务可用,容忍数据不一致;

方案2:OceanBase

优点:

  1. 三地五中心,可做到城市级别的容灾;
  2. 一键式扩容和缩容;

参考:

  1. https://blog.csdn.net/u014401141/article/details/71086757
  2. 虎嗅网:https://www.huxiu.com/article/231957.html

猜你喜欢

转载自blog.csdn.net/yangguosb/article/details/81537785