业务:
平台中有一个流水号功能,之前是采用乐观锁。使用乐观锁的问题是,当当前更新数据时,没有更新的时候,还是需要返回流水号。
这就不得不重新再获取,在平台的用户访问并发很大的时候,这个乐观锁会循环很多次,导致性能下降。
解决方法:
使用悲观锁,由数据库来锁定,当更新时,数据库自动释放锁。
平台配置方法:
<tx:method name="genSequenceNo" propagation="REQUIRES_NEW" isolation="READ_COMMITTED" />
这里事务传播新配置为 REQUIRES_NEW,这个的意思时,让这个事务尽可能快的结束,这样这个方法能够很快执行。