分布式筆記

2021-09-14 03:33:14 字數 1132 閱讀 8525

(1)資料庫的唯一索引

獲得鎖時向表中插入一條記錄,釋放鎖時刪除這條記錄。

(2)redis的setnx指令

與資料庫唯一索引類似,但是redis可以設定過期時間,用於超時釋放。

缺點如果redis發生單點故障,則分布式鎖無法使用。

(3)redis的redlock演算法

使用多個redis例項來實現分布式鎖

(4)zookeeper的有序節點

1)獲取鎖時,在/lock鎖目錄下建立臨時且有序的子節點;

2)客戶端判斷建立的子節點為當前子節點列表中序號最小的子節點,則獲得鎖,否則監聽前乙個子節點,獲得子節點的變更通知後重複此步驟直至獲得鎖。

3)執行業務**,完成後,刪除對應的子節點。

4)會話超時自動釋放臨時節點

(1)本地訊息表

本地訊息表與業務資料表在同乙個資料庫,利用本地事務對這兩個表操作滿足事務特性,使用訊息佇列保證最終一致性。

本地事務保證訊息一定會寫入本地訊息表,之後訊息**到kafka等訊息佇列,成功則刪除本地訊息表。

分布式事務的另一方從訊息佇列中讀取乙個訊息,並執行訊息中的操作。

(2)2pc

1)準備階段

協調者詢問參與者事務是否執行成功,參與者返回事務執行結果。準備階段,參與者執行了事務,但還未提交。

2)提交階段

如果事務都執行成功,則協調者會讓參與者提交事務,否則參與者回滾事務。

存在的問題:參與者等待其他參與者響應時同步阻塞,協調者單點問題、第二部中途出錯導致資料不一致、乙個失敗整體失敗沒有容錯機制

(3)cap

一致性,可用性,分割槽容錯性只能滿足兩個

(4)base

基本可用、軟狀態、最終一致性

對cap理論中一致性和可用性權衡的結果,核心思想是每個應用應該採用適當的方式使系統達到最終一致性

(5)paxos

三類節點:

提議者、提議乙個值

接受者、對每個提議進行投票

告知者:被告知投票過程,不參與投票

執行過程:

1)prepare階段

2)accept階段

(6)raft

分布式一致性協議,主要用來競選主節點

三種節點:follower、candidate和leader

分布式 分布式鎖

本質是利用redis的setnx 方法的特性來加鎖,setnx 即key不存在則設定key,否則直接返回false,要求在分布式系統中使用同乙個redis服務,以下提供兩種解決方案 1 直接使用redistemplate 這其實並不能完全保證高併發下的安全問題,因為可能在鎖過期之後該執行緒尚未執行完...

分布式 分布式事務

是資料庫執行過程中的乙個邏輯單位,由乙個有限的資料庫操作序列構成。事務的acid四大特性 原子性 atomicity 事務作為乙個整體被執行。一致性 consistency 從乙個一致的狀態轉換到另乙個一致的狀態。隔離性 isolation 多個事務併發執行時,併發事務之間互相影響的程度。永續性 d...

分布式 dubbo筆記

dubbo是一種分布式服務框架。webservice也是一種服務框架,但是webservice並不是分布式的服務框架,他需要結合f5實現負載均衡。因此,dubbo除了可以提供服務之外,還可以實現軟負載均衡。它還提供了兩個功能monitor 監控中心和呼叫中心。這兩個是可選的,需要單獨配置。dubbo...