日期:2014-05-18  浏览次数:20680 次

请教一个集群并发问题
现在有个集群有两个节点,里面都有一个定时服务,向数据库写入数据的,现在问题是两个节点都同一时刻启动,写入重复数据了,请问有什么办法控制只启动一个服务,不要写入重复数据

------解决方案--------------------
其实可以想像成一个并发问题,只是这个并发问题是跨JVM的。
数据库存现在是唯一的资源,那么在操作之前需要进行锁定。

给你的建议是安装一个memcahce,利用它的add是原子性的特点来实现资源锁。


 boolean result = cache.add("你的key","缓存的值随便你放什么了");


检查result值就行了,返回false表示资源被占了就结束程序。