ZooKeeper和Eureka的區別

2021-09-26 19:20:17 字數 685 閱讀 2246

(1)cap理論:乙個分布式系統不可能同時滿足c(一致性)、a(可用性)和p(分割槽容錯性)。zookeeper保證的是cp, 而eureka則是ap。

(2)zookeeper保證cp

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

(3)eureka保證ap

eureka正好解決了zk的這一問題,因此在設計時候就優先保證高可用。eureka各個節點都是平等的,幾個節點掛掉不會影響正常節點的工作,剩餘的節點依然可以提供註冊和查詢服務。而eureka的客戶端在向某個eureka server註冊時如果發現連線失敗,則會自動切換到其他節點,只要有一台eureka server在,就能保證註冊服務可用,只不過查到的資訊可能不是最新的。除此之外,eureka還有一種自我保護的機制。因此eureka可以很好的應對因網路故障導致部分節點失去聯絡的情況,而不像zk那樣整個註冊服務癱瘓。

從CAP到zookeeper和eureka對比

今天看了一篇eureka對比zookeeper的文章,對zookeeper滿足cap中的cp,eureka滿足ap產生了一點疑問,故寫此篇文章進行一些 首先我們來看看cap的定義 中文叫做 一致性 意思是,寫操作之後的讀操作,必須返回該值。舉例來說,某條記錄是 v0,使用者向 g1 發起乙個寫操作,...

SpringCloud註冊中心Eureka

springcloud常用的5大元件之一,服務發現 netfix eureka 微服務的本質是讓服務與服務之間進行相互呼叫,不同的服務之間如何知道其他服務,這就要借用服務的發現eureka eureka分為server端和client端,預設埠是8761 一 單註冊中心配置 1 eureka的ser...

SpringCloud註冊中心Eureka小記

1 通過idea建立空專案eureka。2 建立模組eureka server,選擇引入eureka server的包或在pom中新增相關包。org.springframework.cloud groupid spring cloud starter netflix eureka server ar...