註冊中心筆記搬遷

2022-08-03 22:15:20 字數 1632 閱讀 1067

zookeeper

原理分布式鎖

nacos

當master節點因為網路故障與其他節點失去聯絡時,剩餘節點會重新進行leader選舉。問題在於,選舉leader的時間太長,30~120s,而且選舉期間整個zk集群都是不可用的,這就導致在選舉期間註冊服務癱瘓。

在雲部署環境下, 因為網路問題使得zk集群失去master節點是大概率事件,雖然服務能最終恢復,但是漫長的選舉事件導致註冊長期不可用是不能容忍的。

zookeeper

為分布式應用提供一致性服務的軟體,包括:配置維護、網域名稱服務、分布式同步、組服務等。

zookeeper通過心跳機制可以檢測掛掉的機器並將掛掉機器的ip和服務對應關係從列表中刪除。

特點:高效能可擴充套件,讀寫速度快,客戶端的更新順序與它們被傳送的順序相一致,原子性,高可用性 & 可恢復性。

測試環境可以用單個zookeeper伺服器,但是不能保證高可用性 & 可恢復性。

高可用性:可以通過複製,zookeeper它所做的就是確保對znode樹的每乙個修改都會被複製到集合體中超過半數的機器上。超過半數-所有伺服器數一般取奇數。

zookeeper 存在leader,follower,observer三種角色,這三種角色在實際服務集群中都是服務節點。

leader:處理所有請求,為客戶的提供讀和寫服務

follower:只提供讀服務,有機會通過選舉成為leader

observer:只提供讀服務

paxos演算法就是通過投票、全域性編號機制。

原理核心是原子廣播機制,這個機制保證了各個server之間的同步。實現這個機制的協議叫做zab協議。zab協議有兩種模式,它們分別是恢復模式和廣播模式。

(1) 恢復模式

當服務啟動或者在領導者崩潰後,zab就進入了恢復模式,當領導者被選舉出來,且大多數server完成了和leader的狀態同步以後,恢復模式就結束了。狀態同步保證了leader和server具有相同的系統狀態。

(2) 廣播模式(有點類似兩段式提交事務)

一旦leader已經和多數的follower進行了狀態同步後,他就可以開始廣播訊息了,即進入廣播狀態。這時候當乙個server加入zookeeper服務中,它會在恢復模式下啟動,發現leader,並和leader進行狀態同步。待到同步結束,它也參與訊息廣播。zookeeper服務一直維持在broadcast狀態,直到leader崩潰了或者leader失去了大部分的followers支援。

分布式鎖

(1)建立乙個目錄mylock;

(2)執行緒a想獲取鎖就在mylock目錄下建立臨時順序節點;

(3)獲取mylock目錄下所有的子節點,然後獲取比自己小的兄弟節點,如果不存在,則說明當前執行緒順序號最小,獲得鎖;

(4)執行緒b獲取所有節點,判斷自己不是最小節點,設定監聽比自己次小的節點;

(5)執行緒a處理完,刪除自己的節點,執行緒b監聽到變更事件,判斷自己是不是最小的節點,如果是則獲得鎖。

nacos

致力於幫助您發現、配置和管理微服務。nacos 提供了一組簡單易用的特性集,幫助您實現動態服務發現、服務配置管理、服務及流量管理。

sh startup.sh -m standalone

http://localhost:8848/nacos/index.html頁面,輸入賬號密碼:預設賬號:nacos 默然密碼:nacos

eureka註冊中心今日筆記

eureka的今日用法 架構圖 2 啟動類註解宣告 enableeurekaserver 宣告當前應用為eureka服務3 編寫配置檔案 eureka 服務位址,如果是集群的話 需要指定其它集群eureka位址 defaultzone 不註冊自己 register with eureka false...

Eureka 註冊中心

角色 1 服務提供者 2 服務消費者 3 服務註冊中心 a.高ha 支援資料持久化和服務集群 b.資料一致性問題,集群中的所有客戶應該看到同乙份資料不能出現讀寫資料不一致 c.資料變更主動推送,當註冊中心的資料發生變更時要及時通知客戶端 關鍵性功能設計 1 服務提供者在啟動時,向註冊中心註冊自己提供...

Dubbo zookeeper註冊中心

2.修改配置檔案 3.啟動zookeeper 經過上面的配置我們已經完成了zookeeper的修改,下面我們進入bin目錄執行zkserver.cmd 如果是linux伺服器則執行zkserver.sh 如下圖,我們已經啟動zookeeper 4.修改註冊中心 下面我們只需修改服務端和客戶端的註冊中...