分布式系统中并发的问题!?

问题描述:

我做了一个项目ssh+mysql,是一个兑换系统,部署在6台服务器上。 现在有一个问题请教大家:
一个商品,兑换总数是1000个,每次兑换成功就减一。但是兑完后兑换总数总大于1000。
我的程序流程是 hibernate加载 商品,产生订单,商品总数减一,提交事物。
请问各位大虾、除了把数据库加锁外,还有没别的解决方案?

分布式事物处理,这个还需要研究

将订单方法和兑换操作写在同一个方法里,加上syschronzied关键字,使该方法只有一个线程可以访问

我觉得是hibernate分布式事务的原因,

这方面我不是太了解,你可以查查hibernate分布式事务的资料,

或者简单的办法就是做数据锁,但是这样效率会很低,而且容易死锁

:cry:

要看你6太服务器是不是使用的一个数据库源头!

独立的数据源 是不是都读取不同的DB呢?如果不同的DB(六台)话,是不是DB数据保持一致呢?

这个很关键!