Eureka CAP原則與對比Zookepper

2022-07-08 01:06:10 字數 956 閱讀 9843

rdbms(關係型資料庫管理系統)[mysql,sqlserver,orcale] ==> acid

nosql(沒關係型資料庫)[redis,mongdb] ==> cap

根據cap理論,乙個分布式系統不可能同時滿足c(一致性),a(可用性),p(容錯性)。由於分割槽容錯性p在分布式系統中是必須要保證的,因此我們只能在a和c之間權衡。

當向註冊中心查詢服務列表時,我們可以容忍註冊中心返回的是幾分鐘以前的註冊資訊,但不能接受服務直接宕機不可用。也就是說,服務註冊功能對可用性高於一致性。但是zookepper會出現這樣一種情況,當master節點因為網路故障與其他節點失去聯絡時,剩餘節點會重新leader玄駒。問題在於,選舉leader的時間太長,30~120s,且選舉期間整個zookepper集群都是不可用的,這就導致在選舉期間註冊服務癱瘓。在雲部署的環境下,因為網路問題使得zookepper集群時區master節點較大概率會發生這樣的事件,雖然服務最終能夠恢復,但是漫長的選舉時間導致的註冊長期不可用是不能容忍的。

eureka看明白了這一點,因此在設計就優先保證可用性。eureka各個節點都是平等的,幾個節點掛掉不會影響正常節點的工作,剩餘的節點依然可以提供註冊和查詢服務。而eureka的客戶端在向某個eureka註冊時,如果發現連線失敗,則會自動切換至其他節點,只要一台eureka還在,就能保證註冊服務的可用性,只不過查到的資訊可能不是最新的,除此之外,eureka還有一種自我保護機制,如果在15分鐘內超過85%的節點都沒有正常的心跳,那麼eureka就人為客戶端與註冊中心出現了網路故障,此時或出現以下幾種情況:

eureka不再從註冊列表中移除因為長時間沒收到心跳而應該過期的服務

eureka仍然能夠接受新服務的註冊和查詢要求,但是不會被同步到其他節點上(即保證當前節點依然可用)

當網路穩定是,當前例項新的註冊資訊會被同步到其他節點中

因此,eureka可以很好的應對網路故障導致部分節點失去聯絡的情況,而不會像zookeeper那樣使整個註冊服務癱瘓

ruby中的 z與 Z區別

1 s this is nthe name n 2 puts 3 puts s.match name z 4 puts s.match name z 5 puts 6 7 s this is nthe name 8 puts 9 puts s.match name z 10 puts s.match...

2018 1 31《戰棋Z》的設計原則

一.易於上手 難於精通 兵種相剋明確 易記 兵的ai簡單易記易操作 如coc的胖子兵優先攻擊防守單位 二.ai原則 1.目標唯一,目標在攻擊範圍內時,目標不死,始終以其為目標不變 優先攻擊,只要有攻擊目標,就攻擊,而非移動 先移動再攻擊,移動和攻擊不在乙個回合裡 2.移動ai 優先直線,只有當 當前...

Z變換與系統函式

a z變換 英文 z transformation 可將時域訊號 即 離散時間序列 變換為在復頻域的表示式。它在離散時間訊號處理中的地位,如同拉普拉斯變換在連續時間訊號處理中的地位。離散時間訊號的z變換是分析線性時不變離散時間系統問題的重要工具,在數字訊號處理 計算機控制系統等領域有著廣泛的應用。b...