成人免费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識堂
相關推薦

2024-10-23 15:50:41

虛擬化容器化

2021-05-10 08:01:12

BeanFactoryFactoryBean容器

2021-05-28 06:19:22

ZooKeeperConsulNacos

2025-01-09 08:32:50

2015-06-18 09:38:46

路由器交換機

2020-01-10 10:58:34

ZooKeeperEureka注冊中心

2025-02-06 13:19:31

RustPin系統

2024-10-22 09:59:36

虛擬化容器化系統

2019-08-15 16:41:51

軟件工程物聯網信息安全

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

并發編程線程
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 欧美在线视频一区 | a级大片免费观看 | 成年人精品视频在线观看 | 免费的黄色片子 | 国产亚洲精品久久19p | 国产免费观看视频 | 欧美国产一区二区 | 91色视频在线观看 | 亚洲九九| 久久精品国产一区二区电影 | 三极网站 | 欧美一级做a爰片免费视频 国产美女特级嫩嫩嫩bbb片 | 少妇一级淫片免费放播放 | 中文字幕日韩在线 | 精品在线播放 | h片在线免费观看 | 99精品在线 | 国产97碰免费视频 | 亚洲日本欧美日韩高观看 | 日韩成人精品一区二区三区 | 精品一区二区在线观看 | 欧美亚洲另类丝袜综合网动图 | 欧美精品久久久久 | 欧美日韩综合视频 | 亚洲精品日韩欧美 | 亚洲视频一区在线观看 | 日韩中文字幕一区二区 | 日本精品视频在线 | 男女黄网站 | 国产综合久久久久久鬼色 | 性视频网 | 欧美理伦片在线播放 | 大伊人久久 | 黄色高清视频 | 国产精品久久二区 | 在线观看a视频 | 98成人网 | 欧洲精品码一区二区三区免费看 | 免费午夜电影 | 日韩在线国产精品 | 日本精品裸体写真集在线观看 |