莫大人

关于集群并发问题

参考:

http://www.cnblogs.com/PurpleDream/p/5559352.html

http://blog.csdn.net/zxp_cpinfo/article/details/53692922

集群并发问题解决的是因集群部署产生的同步问题。

这里对锁提出几点要求:

1.可以保证在分布式部署的应用集群中,同一个方法在同一时间只能被一台机器上的一个线程执行。

2.这把锁要是一把可重入锁(避免死锁)

3.这把锁最好是一把阻塞锁(根据业务需求考虑要不要这条)

4.有高可用的获取锁和释放锁功能

5.获取锁和释放锁的性能要好

 

锁机制基本就是这个流程

 

提供三种解决方案:

1.数据库锁

简单的理解:对需要加锁的方法或资源插入一条唯一的数据到数据库,每次操作前都做这个动作,能够插入成功则表示占用成功,如果失败表示锁被占用。处理完成删除数据释放锁。对数据库存在依赖,需要手动释放锁。

2.缓存锁

redis,memcached都可以实现,可集群,可设置失效时间。

3.zookeeper 这种方式没有研究。有兴趣的可以研究下,上面有参考地址。

 

posted on 2017-08-07 16:01  莫大人  阅读(829)  评论(0编辑  收藏  举报

导航