请问,一个多线程有关问题

请教,一个多线程问题
本帖最后由 zapdos 于 2014-07-25 08:59:18 编辑
简单的说这是为了解决分布式事务的死锁问题的,经测试是有效的,现在是想找个好的写法,麻烦各位高手帮忙看一下,这个具体的代码应该怎么写

如图所示为使用场景,服务器接到一个请求后需要分散到多个数据节点去操作,需要在阶段1决定锁的顺序,然后在阶段3对每个数据节点(数据节点是固定的)锁定,使其按阶段1决定的顺序获得锁,并在阶段4之前释放
请问,一个多线程有关问题
不同的客户请求有可能在多个不同的服务器上发生,所以这些锁要求是分布式的

本来是想用分布式队列做的,但是感觉有点麻烦,可能使用分布式公平锁是不是会更好一点,但是我不知怎么写,求指教

下面这个是基本架构图
最底下是数据节点,中间是服务器
请问,一个多线程有关问题
------解决方案--------------------
分布式锁用zk(zookeeper)可以做,详细的资料网上很多,LZ可以自己去看看

PS:你的问题没太看明白
------解决方案--------------------
引用:
分布式锁用zk(zookeeper)可以做,详细的资料网上很多,LZ可以自己去看看

PS:你的问题没太看明白


另外我对你的架构不太理解,如果不同的服务器之间要加锁而只能串行的话,那么你用集群的意图何在?
------解决方案--------------------
引用:
Quote: 引用:

分布式锁用zk(zookeeper)可以做,详细的资料网上很多,LZ可以自己去看看

PS:你的问题没太看明白


另外我对你的架构不太理解,如果不同的服务器之间要加锁而只能串行的话,那么你用集群的意图何在?


同意,我觉得也是的,如果这搞这么复杂,还用集群干嘛,这样搞下去也许最终性能比单服务器好不了多少呢?
------解决方案--------------------
引用:
Quote: 引用:

Quote: 引用:

Quote: 引用:

分布式锁用zk(zookeeper)可以做,详细的资料网上很多,LZ可以自己去看看

PS:你的问题没太看明白


另外我对你的架构不太理解,如果不同的服务器之间要加锁而只能串行的话,那么你用集群的意图何在?


同意,我觉得也是的,如果这搞这么复杂,还用集群干嘛,这样搞下去也许最终性能比单服务器好不了多少呢?


需要同步的只有2块低耗时的操作,况且哪个分布系统,是完全不需要锁的,不然用zookeeper来做什么呢


soga,如果你的问题可以抽象为分布式如何加锁的话,就上zk吧。
不过我还是觉得作为job服务器,从架构上说,这类服务器最好是无状态的,即你的加锁控制之类的逻辑不要放在job服务器上,可以作为总控节点存在,job服务器作无状态的集群专门跑job,这样你实现的复杂度要低很多。这样把控制逻辑揉进去,以后要改会很痛苦的