高并发下的不同订单相同订单号的处理

来源:互联网 发布:旺旺消息群发软件 编辑:程序博客网 时间:2024/06/03 12:30

公司的用户数突然并发数激增,紧急处理,添加了服务的带宽输出,内存等一些服务器操作,解决了使产品正常使用。


发现一天3000多单的数据里,有很多不同的订单,但是订单号却相同,查了半天,获取订单号的接口没有问题,创建订单的接口也没有问题,


问题就出现在高并发下:

1、订单号是根据获取当天最大的订单号+1,作为参数插入数据库,生成订单,

2、在获取订单号到生成订单有一定的时间差,大概也就是几毫秒的时间差,但是在高并发下,就有可能同时获取到相同的订单号,


找到问题了,解决办法:

1、订单表中给ordre_sn订单号这个字段加上唯一索引,(数据库一开始设计的并不好)

2、在产生相同订单号的时候,将order_sn+1后再次插入数据库,如果还是有相同的订单号,则不在+1重复插入(其实这个操作可以省掉,直接报系统繁忙就可以了)


还有什么好的办法解决这类问题吗?求教。

0 0
原创粉丝点击