交易流水处理设计

交易流水处理设计

数据表设计

交易流水日志表 tran_seq_log

字段 描述 备注
tran_seq_no 本系统交易流水号 主键
channel_seq_no 上游渠道交易流水号 channel_seq_no、channel_code、tran_code三者构造唯一索引
channel_code 渠道编码
tran_code 本系统提供的交易编码
create_time 交易流水创建时间
update_time 交易处理后更新时间
status_code 交易状态码 00-成功,01-失败,99-处理中
response_code 响应码
response_msg 响应描述

流程设计

其他

  • 事务A和事务C都可以在拦截器中实现,也可以在AOP中实现,这样所有的业务逻辑代码都可以被交易流水进行控制
  • 交易流水日志表在服务运行一段时间后会变得臃肿,因此需要清理。设计一个交易流水日志历史表,并且设计一个定时任务每天扫描,将一个月或者几个月前的交易流水日志迁移到历史表中。如果交易量很大,也可以迁移几天前的数据。另外,交易流水日志历史表并不需要主键或者索引。