亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Java中Zookeeper注冊中心原理是什么

發布時間:2021-08-02 09:56:32 來源:億速云 閱讀:130 作者:chen 欄目:開發技術

本篇內容主要講解“Java中Zookeeper注冊中心原理是什么”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“Java中Zookeeper注冊中心原理是什么”吧!

RPC框架中有3個重要的角色:

Java中Zookeeper注冊中心原理是什么

注冊中心 :保存所有服務的名字,服務提供者的IP列表,服務消費者的IP列表

服務提供者: 提供跨進程服務

服務消費者: 尋找到指定命名的服務并消費。

Zookeeper用作注冊中心
簡單來講,zookeeper可以充當一個服務注冊表(Service Registry),讓多個服務提供者形成一個集群,讓服務消費者通過服務注冊表獲取具體的服務訪問地址(IP+端口)去訪問具體的服務提供者。如下圖所示:

Java中Zookeeper注冊中心原理是什么

具體來說,zookeeper就是個分布式文件系統,每當一個服務提供者部署后都要將自己的服務注冊到zookeeper的某一路徑上: /{service}/{version}/{ip:port},比如我們的HelloWorldService部署到兩臺機器,那么zookeeper上就會創建兩條目錄:分別為/HelloWorldService/1.0.0/100.100.0.237:16888

/HelloWorldService/1.0.0/100.100.0.238:16888。

如圖:

Java中Zookeeper注冊中心原理是什么

在zookeeper中,進行服務注冊,實際上就是在zookeeper中創建了一個znode節點,該節點存儲了該服務的IP、端口、調用方式(協議、序列化方式)等。該節點承擔著最重要的職責,它由服務提供者(發布服務時)創建,以供服務消費者獲取節點中的信息,從而定位到服務提供者真正網絡拓撲位置以及得知如何調用。RPC服務注冊、發現過程簡述如下:

1.服務提供者啟動時,會將其服務名稱,ip地址注冊到配置中心。

2.服務消費者在第一次調用服務時,會通過注冊中心找到相應的服務的IP地址列表,并緩存到本地,以供后續使用。當消費者調用服務時,不會再去請求注冊中心,而是直接通過負載均衡算法從IP列表中取一個服務提供者的服務器調用服務。

3.當服務提供者的某臺服務器宕機或下線時,相應的ip會從服務提供者IP列表中移除。同時,注冊中心會將新的服務IP地址列表發送給服務消費者機器,緩存在消費者本機。

4.當某個服務的所有服務器都下線了,那么這個服務也就下線了。

5.同樣,當服務提供者的某臺服務器上線時,注冊中心會將新的服務IP地址列表發送給服務消費者機器,緩存在消費者本機。

6.服務提供方可以根據服務消費者的數量來作為服務下線的依據。

感知服務的下線&上線

zookeeper提供了“心跳檢測”功能,它會定時向各個服務提供者發送一個請求(實際上建立的是一個 socket 長連接),如果長期沒有響應,服務中心就認為該服務提供者已經“掛了”,并將其剔除。比如100.100.0.237這臺機器如果宕機了,那么zookeeper上的路徑就會只剩/HelloWorldService/1.0.0/100.100.0.238:16888。

服務消費者會去監聽相應路徑(/HelloWorldService/1.0.0),一旦路徑上的數據有任務變化(增加或減少),zookeeper都會通知服務消費方、服務提供者地址列表已經發生改變,從而進行更新。

更為重要的是zookeeper 與生俱來的容錯容災能力(比如leader選舉),可以確保服務注冊表的高可用性。

使用 zookeeper 作為注冊中心時,客戶端訂閱服務時會向 zookeeper 注冊自身;主要是方便對調用方進行統計、管理。但訂閱時是否注冊 client 不是必要行為,和不同的注冊中心實現有關,例如使用 consul 時便沒有注冊。

到此,相信大家對“Java中Zookeeper注冊中心原理是什么”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

海林市| 金平| 绥芬河市| 兴城市| 德保县| 武平县| 高碑店市| 布尔津县| 永善县| 武宁县| 三江| 普陀区| 舟曲县| 新余市| 通州区| 永善县| 离岛区| 昌黎县| 恩平市| 深水埗区| 辽阳县| 新蔡县| 红原县| 时尚| 虹口区| 新干县| 新田县| 都昌县| 邵武市| 勃利县| 凌海市| 孟村| 资源县| 衡南县| 龙泉市| 沭阳县| 三都| 蒙阴县| 屯留县| 府谷县| 涡阳县|