问题描述
- JAVA两个部署在不同服务器上的程序访问同一个表,如何避免同时向这个表中插入数据 ?
-
JAVA两个部署在不同服务器上的程序访问同一个表,如何避免同时向这个表中插入数据 ?刚写了个程序发现存在这个问题,原以为这种概率不会太高,但还是存在,怎么解决?谢谢
解决方案
其实和进程互斥的原理应该是一样的吧,在某一服务器访问该公共表的时候加锁,并同步更新数据至所有可达服务器,这样别的服务器也有访问请求时,就会等锁解开再进行。加锁的服务器程序应负责在释放资源后解锁。
解决方案二:
情况是这样的,现在要对供货商进行加款,只要满足余额<阈值 就申请加款,但只要这个供货商有未处理完成的加款申请,就不能再有新的申请,加款程序在插入申请时会去数据库中查询有没有未处理完成的请求,如果有则放弃,单程序运行时没有任何问题,但是多个同时运行时就出现了同时申请的问题,记录重复,请问该怎么解决这个问题?
时间: 2024-12-04 01:48:50