當向註冊中心查詢服務列表時,我們可以容忍註冊中心返回的是幾分鐘以前的註冊資訊,但不能接受服務直接down掉不可用。也就是說,服務註冊功能對可用性的要求要高於一致性。但是zk會出現這樣一種情況,當master節點因為網路故障與其他節點失去聯絡時,剩餘節點會重新進行leader選舉。問題在於,選舉leader的時間太長,30 ~ 120s, 且選舉期間整個zk集群都是不可用的,這就導致在選舉期間註冊服務癱瘓。在雲部署的環境下,因網路問題使得zk集群失去master節點是較大概率會發生的事,雖然服務能夠最終恢復,但是漫長的選舉時間導致的註冊長期不可用是不能容忍的。
eureka看明白了這一點,因此在設計時就優先保證可用性。eureka各個節點都是平等的,幾個節點掛掉不會影響正常節點的工作,剩餘的節點依然可以提供註冊和查詢服務。而eureka的客戶端在向某個eureka註冊或時如果發現連線失敗,則會自動切換至其它節點,只要有一台eureka還在,就能保證註冊服務可用(保證可用性),只不過查到的資訊可能不是最新的(不保證強一致性)。除此之外,eureka還有一種自我保護機制,如果在15分鐘內超過85%的節點都沒有正常的心跳,那麼eureka就認為客戶端與註冊中心出現了網路故障,此時會出現以下幾種情況:
eureka不再從註冊列表中移除因為長時間沒收到心跳而應該過期的服務
eureka仍然能夠接受新服務的註冊和查詢請求,但是不會被同步到其它節點上(即保證當前節點依然可用)
當網路穩定時,當前例項新的註冊資訊會被同步到其它節點中
因此, eureka可以很好的應對因網路故障導致部分節點失去聯絡的情況,而不會像zookeeper那樣使整個註冊服務癱瘓。
shell指令碼啟動與關閉zookeeper集群
提示 適用於使用shell指令碼控制zookeeper集群的啟動與關閉 1.zookeeper安裝目錄 hadoop zookeeper 3.4.10 2.配置好環境變數 3.三颱主機 或者是虛擬機器 修改了主機名 關閉了防火牆 並配置免密碼登陸,主機ip與主機名的對映關係 stormfct1 19...
zookeeper學習之zookeeper集群
匯入zookeeper原始碼包,解壓安裝到你放置的資料夾 命令 tar zxvf 原始碼包名 進入解壓後的資料夾 conf目錄,複製zoo zample.cfg檔案並重命名 命令 cp zoo zample.cfg zoo.cfg 使用vim編輯器修改zoo.cfg檔案 命令 vim zoo.cfg...
安裝rz centos安裝zookeeper
wget zookeeper 3.4.9.tar.gz 2 進入 opt目錄,對安裝進行解壓 tar xzvf zookeeper 3.4.9.tar.gz 3 重新命名 可省略 mv zookeeper 3.4.9 zookeeper 4 進入目錄,建立配置檔案 cd zookeeper conf...