远程服务调用防重复处理 通过业务单号做链路幂【附代码】

今天爱分享给大家带来远程服务调用防重复处理 通过业务单号做链路幂【附代码】,希望能够帮助到大家。
建议用业务订单号做全链路的防重,幂等处理。将上游送上来的业务单号直接发下游,防止异常处理时由于新生成的下游流水号导致下游重复处理。

Ps:有些场景,下游流水号长度会比较短,如果是需要再生成下游流水号,建议远程调用下游前先落表。异常处理里,直接从数据库拿该字段。


CbibTransferReqVo req = new CbibTransferReqVo();
req.setAmt(amt);
...
req.setSerialId(SerialNumberUtil.generateSerialId());  //错误:调用前新生成了订单号
//正确:req.setSerialId(inMessage.getOrderNo());
res = cbibService.doTransfer(req);


人已赞赏
数据库

查询判重在并发下存在的问题 交易判重 数据库底层判重【附代码】

2020-12-23 14:32:48

数据库

文件的防止多进程读 数据库或FileLock防重复处理【附代码】

2020-12-23 14:34:54