锁定老帖子 主题:多个客户端连接同一套数据,怎样防止同时更新
精华帖 (1) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2013-01-04
tianzizhi 写道 如果考虑扩展性,使用分布式锁,可以扩展成锁部分逻辑,而不只是一个更新语句,
如果不考虑,只考虑数据库,直接使用select xx from xx for update wait xx秒,通过后然后执行更新 请问一下,分布锁怎么实现 |
|
返回顶楼 | |
发表时间:2013-01-04
tianzizhi 写道 如果考虑扩展性,使用分布式锁,可以扩展成锁部分逻辑,而不只是一个更新语句,
如果不考虑,只考虑数据库,直接使用select xx from xx for update wait xx秒,通过后然后执行更新 请问“select xx from xx for update wait xx秒”这个语句是否都各种数据库都适用(SQLServer、MySQL、PostgreSQL等); lz的这个问题很具有普遍意义,合理的解决方案,帮到不少人。 |
|
返回顶楼 | |
发表时间:2013-01-06
jhrjhr 写道 tianzizhi 写道 如果考虑扩展性,使用分布式锁,可以扩展成锁部分逻辑,而不只是一个更新语句,
如果不考虑,只考虑数据库,直接使用select xx from xx for update wait xx秒,通过后然后执行更新 请问一下,分布锁怎么实现 现知道两种方法: 1 jgroups 自己带的锁服务,使用组播或固定多ip 2 zookeeper 根据它提供的基础服务自己实现一个锁,代码很简单 根据情况选择吧,我项目里2节点,用的jgroups,部署简单,直接放jar在每个节点项目里就ok了, 如果规模大或节点多的话,稳定性要求高的话建议用zookeeper集群 |
|
返回顶楼 | |