2012-08-17 36 views
4

爲什麼人們需要分佈式鎖?什麼是分佈式鎖,爲什麼使用它?

當共享資源被它的本地機器的保護,這是否意味着我們並不需要一個分佈式的鎖?

我的意思是當共享資源暴露給其他人通過使用某種API或服務,並且這個API或服務使用它的本地鎖保護;那麼我們不需要這種分佈式鎖;我對嗎?

回答

1

詢問人後quora。我想我得到了答案。

假設N個工作服務器訪問數據庫服務器。有兩個部分的位置:

  1. 數據庫有其自己的鎖的方法來保護從其他客戶端的併發訪問(N工作服務器)已損壞的數據。這是數據庫中的本地鎖定出現的地方。

  2. n個工作服務器可能需要一些加冕,以確保他們在做正確的事情,這是專用的。這是分佈式鎖出現的地方。比方說,如果兩個工作服務器運行一個相同的進程來刪除數據庫的表並向表中添加一些記錄。數據庫服務器可以確保其內部數據是正確的,但是這兩個進程需要一個分佈式鎖來相互協調,否則,一個進程會丟棄另一個進程的表。

2

是,也不是,如果你通過一個鎖暴露從本地API的信息,以防止互斥取決於鎖是如何設置你的實現可能是究竟什麼是分佈式鎖,努力實現,但如果你還沒有開發API,那麼你將不得不挖掘API的來源,以查明它是一個本地化的或分佈式的鎖定系統。老實說,鎖是一把鎖,它試圖做同樣的事情,不管做什麼。分佈式鎖定優於本地化的一個優點是,您已經考慮了排隊以防止在昂貴的緩存點上從客戶端進行過度訪問。

+0

你好,請查看我的回答,希望它會澄清這一點。 – 2012-08-17 08:58:54

+0

@ ming.kernel你的答案是教科書鎖和互斥鎖,正如我所說的,一個鎖是一個鎖是一個鎖。 – 2012-08-17 14:33:44

相關問題