1、不能将调用外部接口的代码置于事务中,因为事务会占用数据库链接,如果外部接口超时,在并发的情况下会导致数据库连接池耗尽,系统崩溃;可使用spring编程试事务处理;
2、数据冥等性,同一个订单的请求,应返回相同的结果;
订单记录表 |
订单ID |
... |
扣款记录表 |
流水号 |
订单id |
... |
银行记录表 |
订单id |
商户 |
... |
在生成扣款记录时,生成唯一流水号,再使用流水号传入外部扣款系统,保证冥等
原文:http://www.cnblogs.com/cyc-f/p/7813176.html