java后台写的一个接口或者方法,调用一次和调用N次,如果从理论上
我们得到的结果是一样的,那么这个操作就是幂等的(查询,设置),而插入和删除是典型的非幂等操作,因为不可重现;
再举个例子,我们系统中引入消息中间件的时候...,会存在消息幂等的概念,消息中间件接收到发送方的消息后
存储此消息并做唯一标识,不管其有没有收到响应或者有没有重发,中间件都不会存储两条一模一样的消息;
消息被消费方消费后,不管中间件有没有收到响应,消费方应该要做唯一标识存储消费的消息...,而不会导致
重复消费同一条消息(A像中间件发消息,如果中间件没有收到消息或者收到消息后,给的响应A没有收到,
那么A将重发消息;B消费中间件存储的消息,
如果给的响应中间件没有收到,消息将会重复被B消费...更新的时候虽然发现stock是其期望的值,但是版本号
已经变更了两次,从而更新失败
以下是代码和并发测试
①创建库存表
②编写接口及实现
③单元测试
开了20个线程测试多次没有出现库存被扣负的情况,欢迎各位大神拿砖来拍