论坛首页 Java企业应用论坛

多个客户端连接同一套数据,怎样防止同时更新

浏览 16089 次
精华帖 (1) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2013-01-04  
tianzizhi 写道
如果考虑扩展性,使用分布式锁,可以扩展成锁部分逻辑,而不只是一个更新语句,
如果不考虑,只考虑数据库,直接使用select xx from xx for update wait xx秒,通过后然后执行更新

请问一下,分布锁怎么实现
0 请登录后投票
   发表时间:2013-01-04  
tianzizhi 写道
如果考虑扩展性,使用分布式锁,可以扩展成锁部分逻辑,而不只是一个更新语句,
如果不考虑,只考虑数据库,直接使用select xx from xx for update wait xx秒,通过后然后执行更新


请问“select xx from xx for update wait xx秒”这个语句是否都各种数据库都适用(SQLServer、MySQL、PostgreSQL等);


lz的这个问题很具有普遍意义,合理的解决方案,帮到不少人。
0 请登录后投票
   发表时间:2013-01-06  
jhrjhr 写道
tianzizhi 写道
如果考虑扩展性,使用分布式锁,可以扩展成锁部分逻辑,而不只是一个更新语句,
如果不考虑,只考虑数据库,直接使用select xx from xx for update wait xx秒,通过后然后执行更新

请问一下,分布锁怎么实现


现知道两种方法:
1 jgroups 自己带的锁服务,使用组播或固定多ip
2 zookeeper 根据它提供的基础服务自己实现一个锁,代码很简单

根据情况选择吧,我项目里2节点,用的jgroups,部署简单,直接放jar在每个节点项目里就ok了,
如果规模大或节点多的话,稳定性要求高的话建议用zookeeper集群
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics