分佈式--鎖和事物

有些人可能會混淆分佈式鎖和分佈式事物這兩個概念,所以在這裏進行簡單的區別介紹一下。


鎖:在單進程的系統中,當存在多個線程可以同時改變某個變量(可變共享變量)時,就需要對變量或代碼塊做同步,使其在修改這種變量時能夠線性執行消除併發修改變量。

鎖是用來解決,線程安全問題的。

分佈式鎖:主要指集羣的情況下,多個相同服務同時開啓

  • 分佈式與單機情況下最大的不同在於其不是多線程而是多進程。
  • 多線程由於可以共享堆內存,因此可以簡單的採取內存作爲標記存儲位置。而進程之間甚至可能都不在同一臺物理機上,因此需要將標記存儲在一個所有進程都能看到的地方。


事物:就是一個會話過程中,對上下文的影響是一致的,要麼所有的更改都做了,要麼所有的更變都撤銷掉。就要麼生,要麼死。沒有半死不死的中間不可預期狀態。


在瞭解分佈式事物之前我們先需要了解分佈式服務,比如我們的經常買東西的淘寶和京東,在開發的時候,購物車是一個工程,商品是一個工程。在部署的時候講購物車和商品模塊分別部署到了兩臺服務器上。

那麼這個時候,我們向購物車添加一個商品,那麼有兩個操作,一個是向購物車添加,一個是這個商品的庫存減去1。但是這兩個服務在兩臺服務器上面,我們怎麼保證這個添加和減去一這兩個動作同時更改啊。

分佈式事物:就是用來解決上面的問題。分佈式服務的情況下數據的一致性。



本篇博客只是簡單的用來區分,分佈式事物和分佈式鎖。


推薦一篇好的分佈式鎖的 博客:https://www.cnblogs.com/suolu/p/6588902.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章