关于集群并发问题
參考:
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 這種方式沒有研究。有興趣的可以研究下,上面有參考地址。
?
轉載于:https://www.cnblogs.com/yun965861480/p/7299587.html
總結
- 上一篇: POJ 1449 amp; ZOJ 10
- 下一篇: 实习第十三天