欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java之Zookeeper注冊中心原理剖析

 更新時間:2021年07月31日 09:17:06   作者:java構(gòu)架師  
這篇文章主要介紹了Java之Zookeeper注冊中心原理剖析,本篇文章通過簡要的案例,講解了該項技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下

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

Zookeeper用作注冊中心的原理

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

服務(wù)提供者: 提供跨進(jìn)程服務(wù)

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

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

在這里插入圖片描述

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

/HelloWorldService/1.0.0/100.100.0.238:16888。

如圖:

在這里插入圖片描述

在zookeeper中,進(jìn)行服務(wù)注冊,實際上就是在zookeeper中創(chuàng)建了一個znode節(jié)點,該節(jié)點存儲了該服務(wù)的IP、端口、調(diào)用方式(協(xié)議、序列化方式)等。該節(jié)點承擔(dān)著最重要的職責(zé),它由服務(wù)提供者(發(fā)布服務(wù)時)創(chuàng)建,以供服務(wù)消費者獲取節(jié)點中的信息,從而定位到服務(wù)提供者真正網(wǎng)絡(luò)拓?fù)湮恢靡约暗弥绾握{(diào)用。RPC服務(wù)注冊、發(fā)現(xiàn)過程簡述如下:

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

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

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

4.當(dāng)某個服務(wù)的所有服務(wù)器都下線了,那么這個服務(wù)也就下線了。

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

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

感知服務(wù)的下線&上線

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

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

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

使用 zookeeper 作為注冊中心時,客戶端訂閱服務(wù)時會向 zookeeper 注冊自身;主要是方便對調(diào)用方進(jìn)行統(tǒng)計、管理。但訂閱時是否注冊 client 不是必要行為,和不同的注冊中心實現(xiàn)有關(guān),例如使用 consul 時便沒有注冊。

到此這篇關(guān)于Java之Zookeeper注冊中心原理剖析的文章就介紹到這了,更多相關(guān)Java之Zookeeper注冊中心原理內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • IDEA中WebService生成Java代碼并調(diào)用外部接口實現(xiàn)代碼

    IDEA中WebService生成Java代碼并調(diào)用外部接口實現(xiàn)代碼

    這篇文章主要介紹了IDEA中WebService生成Java代碼并調(diào)用外部接口實現(xiàn),本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-05-05
  • Java使用Filter實現(xiàn)登錄驗證

    Java使用Filter實現(xiàn)登錄驗證

    本文主要介紹了Java使用Filter實現(xiàn)登錄驗證,Filter類似于門衛(wèi),你在進(jìn)入之前門衛(wèi)需要盤查你,身份合法進(jìn)入,身份不合法攔截,感興趣的可以了解一下
    2023-11-11
  • 淺談Java枚舉的作用與好處

    淺談Java枚舉的作用與好處

    下面小編就為大家?guī)硪黄獪\談Java枚舉的作用與好處。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-07-07
  • Java枚舉的使用方法詳解

    Java枚舉的使用方法詳解

    這篇文章主要介紹了 Java枚舉的使用方法詳解的相關(guān)資料,希望通過本文大家能掌握枚舉的使用方法,需要的朋友可以參考下
    2017-09-09
  • java中常見的6種線程池示例詳解

    java中常見的6種線程池示例詳解

    這篇文章主要介紹了java中常見的6種線程池示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-11-11
  • 編程入門:掌握J(rèn)ava運算符技巧

    編程入門:掌握J(rèn)ava運算符技巧

    掌握J(rèn)ava運算符技巧,能讓你的編程之旅輕松許多,本指南將帶你深入了解如何巧妙地使用這些強(qiáng)大的工具,讓代碼不僅高效,還充滿樂趣,跟著我們一起,讓你的Java代碼在運算符的魔法下煥發(fā)新生!
    2023-12-12
  • Java8中方便又實用的Map函數(shù)總結(jié)

    Java8中方便又實用的Map函數(shù)總結(jié)

    java8之后,常用的Map接口中添加了一些非常實用的函數(shù),可以大大簡化一些特定場景的代碼編寫,提升代碼可讀性,快跟隨小編一起來看看吧
    2022-11-11
  • Java如何導(dǎo)出zip壓縮文件

    Java如何導(dǎo)出zip壓縮文件

    這篇文章主要介紹了Java如何導(dǎo)出zip壓縮文件問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-07-07
  • Java基礎(chǔ)學(xué)習(xí)之方法的重載知識總結(jié)

    Java基礎(chǔ)學(xué)習(xí)之方法的重載知識總結(jié)

    今天帶大家來回顧Java基礎(chǔ)知識,文中對Java方法的重載相關(guān)知識作了非常詳細(xì)的介紹,對正在學(xué)習(xí)java的小伙伴們有很好的幫助,需要的朋友可以參考下
    2021-05-05
  • Intellij Idea中進(jìn)行Mybatis逆向工程的實現(xiàn)

    Intellij Idea中進(jìn)行Mybatis逆向工程的實現(xiàn)

    這篇文章主要介紹了Intellij Idea中進(jìn)行Mybatis逆向工程的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-05-05

最新評論