开发者社区> 问答> 正文

SLB + 多Nginx + 多Tomcat 如何避免重复请求数据?

opsarno 2017-09-27 17:28:19 1608

_1_

架构如图
SLB下的2台nginx 权重相同
2台nginx下,对应多个Tomcat权重相同

当用户有重复的POST数据请求时,会导致数据库的死锁。 - -

有什么好的方法解决这样的问题吗?

分享到
取消 提交回答
全部回答(1)
  • 1210119897362579
    2019-07-17 21:37:06

    对于高并发数据库访问所需要采取的架构措施
    1 java 事务尽量减短,禁止在事务里调用远程接口
    2 建议数据库事务级别为,read commitd. 如果使用read repeated,会数据库多产生一个gap锁,gap锁主要防治幻读, mysql 默认tx锁是对已经存在的数据,比如update delete. 但是insert 的数据是无法判断的,因为是未来发生的事情,为了保证事务读取事务刚开始的数据,mysql提供了gap锁. 这个也是产生死锁的原因.
    3 使用分布式锁,同样的数据同一时候只有一个请求在做事情

    0 0