成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Zookeeper和Eureka有哪些區別?

開發 前端
在分布式系統的發展中,影響最大的莫過于CAP定理了,是分布式系統發展的理論基石。

 [[373700]]

CAP定理

在分布式系統的發展中,影響最大的莫過于CAP定理了,是分布式系統發展的理論基石。

 

  1. 2000年,加州大學的計算機科學家 Eric Brewer提出了CAP猜想
  2. 2002 年,麻省理工學院的 Seth Gilbert 和 Nancy Lynch 從理論上證明了 CAP 猜想,CAP猜想成為了CAP定理

「CAP定理,簡單來說就是分布式系統不可能同時滿足Consistency 一致性、Availability 可用性、Partition Tolerance 分區容錯性三個要素」

Consistency 一致性

一致性的含義為,在節點的任意時刻,訪問任意節點返回的數據是一致的。即Client端寫入一個數據后,Server端將數據同步到整個系統,從而保證系統的數據都相同

 

Availability 可用性

可用性的含義為,集群能夠對用戶的請求給予響應。

 

Partition Tolerance 分區容錯性

分區容錯的含義為,當出現分區故障時,系統仍要對外提供服務。分布式系統中,每個服務節點都是不可靠的,當某些節點出現異常時,或者節點之間的通訊產生異常時,整個系統就產生了分區問題,分布式系統中分區問題是客觀存在的。

 

CAP權衡

CA

系統選擇CA,即不支持分區容錯,只支持一致性和可用性。意味著不允許出現分區異常,網絡一致處于理想狀態。但是分布式系統之間網絡異常是客觀存在的,如果避免了P,只能把分布式系統退回到單實例系統。

 

CP

因為分布式系統P是客觀存在的,所以我們要在CP和AP之間進行抉擇。

在網絡分區發生時,兩個分布式節點之間無法進行通信,我們對一個節點進行的修改操作將無法同步到另外一個節點,所以數據的「一致性」將無法滿足,因為兩個分布式節點的數據不再保持一致。除非我們犧牲「可用性」,也就是暫停分布式節點服務,在網絡分區發生時,不再提供修改數據的功能,直到網絡狀況完全恢復正常再繼續對外提供服務

「當選擇CP時,相當于放棄系統的可用性,換取一致性」。zookeeper是選擇了CP的系統

在zookeeper集群中,有如下三種角色

 

角色 作用
Leader 事務請求的唯一調度者和處理者 (事務請求為除查詢之外的請求)
Follower 處理非事務請求,參與Leader選舉投票
Observer 處理非事務請求,不參與選舉投票

在Leader服務器失效時,會重新從Follower服務器中選舉一個新的服務器作為Leader服務器。「在重新選舉Leader服務器的過程中,事務請求會被掛起,選舉完Leader服務器之后才會執行這些請求」。即為了保證一致性,放棄了系統的可用性

AP

 

「當選擇AP時,相當于放棄系統一致性,換取可用性」。eureka是選擇了AP的系統

和zookeeper集群中有三種角色不同的是,eureka集群中每個節點扮演相同的角色,他們通過互相注冊的方式來感知對方的存在,當有注冊信息時,他們會同步給集群內的其他節點。

下面我從源碼角度分析一下eureka是如何放棄一致性來保證可用性的(放心,不會放源碼的,說一下大概思路。源碼也比較簡單,有興趣的可以看我寫的博客https://blog.csdn.net/zzti_erlie/article/details/104088914)

 

eureka注冊中心的信息保存在AbstractInstanceRegistry類的成員變量中

  1. // AbstractInstanceRegistry 
  2. private final ConcurrentHashMap<String, Map<String, Lease<InstanceInfo>>> registry 
  3.  = new ConcurrentHashMap<String, Map<String, Lease<InstanceInfo>>>(); 

就是一個雙層map,這個雙層map也很好理解。最外層是服務名,里面是一個具體的實例名

當有服務往eureka上注冊時,注冊信息會被保存在map中,同時會把信息同步給其他的節點。此時有可能有些節點不可用了,或者網絡故障,并沒有收到信息,此時集群節點內的信息可能是不一致的。

 

當客戶端從某個eureka節點獲取信息失敗,或者注冊失敗,會自動切換到另一個eureka節點。只要有一臺eureka節點可用,就能保證注冊服務可用。

Zookeeper和Eureka的區別

最后總結一下兩者的區別

  Zookeeper Eureka
設計原則 CP AP
優點 數據最終一致 服務高可用
缺點 選舉leader過程中集群不可用 服務節點間的數據可能不一致
適用場景 對數據一致性要求較高 對注冊中心服務可用性要求較高

本文轉載自微信公眾號「Java識堂」,可以通過以下二維碼關注。轉載本文請聯系Java識堂公眾號。

 

責任編輯:武曉燕 來源: Java識堂
相關推薦

2021-05-10 08:01:12

BeanFactoryFactoryBean容器

2021-05-28 06:19:22

ZooKeeperConsulNacos

2020-01-10 10:58:34

ZooKeeperEureka注冊中心

2025-01-09 08:32:50

2015-06-18 09:38:46

路由器交換機

2019-08-15 16:41:51

軟件工程物聯網信息安全

2025-02-06 13:19:31

RustPin系統

2024-10-22 09:59:36

虛擬化容器化系統

2019-02-22 05:23:36

VLANVXLAN網絡技術

2020-06-15 08:19:00

ZooKeeperEureka

2020-06-29 07:58:18

ZooKeeperConsul 注冊中心

2015-09-07 09:23:07

推薦廣告系統

2011-11-07 09:31:20

大數據Hadoop

2021-03-07 16:45:42

RPAAI機器人自動化

2020-12-17 11:13:34

積木報表帆軟報表開源1.0-beta

2021-07-22 09:00:00

SPAPWAWeb

2023-02-03 15:48:20

數據中心云計算安全

2020-03-09 20:56:19

LoRaLoRaWAN無線技術

2022-09-07 18:32:57

并發編程線程

2023-01-04 11:41:31

微服務SOA架構
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产一区视频在线 | 久久网站免费视频 | 日本a级大片| 精品久久中文字幕 | 国产精品自拍视频 | 91在线视频观看免费 | 日韩一级精品视频在线观看 | 中文天堂在线一区 | 成人不卡一区二区 | 日韩伦理一区二区 | 日本天堂一区二区 | 国产在线播 | 国产精品欧美一区二区三区 | 久久国产日韩 | 国产亚洲精品久久19p | 懂色中文一区二区三区在线视频 | 91网站在线观看视频 | 久久一区二区三区四区 | 久久综合久 | 黄色一级大片在线免费看产 | 久久久久99 | 国产一级在线 | 欧美精品一区二区免费 | 天堂三级 | 麻豆精品国产免费 | 日本网站在线看 | www.青青草 | 亚洲最大的成人网 | 免费黄色大片 | 中文一级片 | 久久精品com| 一区二区不卡 | 黄色片免费 | 日韩一区精品 | 国产 欧美 日韩 一区 | 男女免费视频网站 | 亚洲电影一区二区三区 | www.日本国产| 久久国 | 日本精品视频一区二区 | 天天躁人人躁人人躁狂躁 |