中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

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

zookeeper注冊中心的對比是什么樣的

發布時間:2021-10-20 10:13:35 來源:億速云 閱讀:135 作者:柒染 欄目:大數據

這篇文章將為大家詳細講解有關 zookeeper注冊中心的對比是什么樣的,文章內容質量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。

最近在學zookeeper 注冊中?   找到一份比較詳細的注冊中心對比 

簡單記一下:

1        ZooKeeper

Java開發的一個服務管理應用. 是Hadoop項目的子項目. 動物園管理員. 是一個其他應用的管理應用, 負責協調,調度,管理,配置等功能.

支持斷點恢復, 會話恢復, 配置服務項, 配置消費項, 通配信息配置等.

ZooKeeper是一個Java開發的應用. 運行環境只需要JDK和JVM.

2        Multicast

廣播式注冊中心. 只要Provider和Consumer在同一個網段中即可實現服務的發布和訂閱.

局限性 : 只適合小型架構或開發測試使用. 因為可能造成廣播風暴. 網段內超過5臺物理機同時發布服務, 可能造成數據通訊問題, 無法實現快速的服務訂閱和應用.

3        Redis

KV服務器注冊中心. KV服務器, 高速緩存服務器. 內存型數據庫. NOSQL數據庫. 后期有課程詳細講解.

類似ZooKeeper注冊中心. Provider發布服務到Redis, Consumer從Redis中訂閱服務.

優勢: 高效.

缺陷: 數據描述相對簡單, 使用頻率相對較少. 沒有經過大量測試, 穩定性不確定.

4        Simple

就是Dubbo自定義的一個注冊中心. 減少三方依賴. 讓代碼依賴性降低, 耦合性降低.

只適合小型應用和開發測試.

以下引用詳細解釋

Multicast 注冊中?
Multicast 注冊中?不需要啟動任何中?節點,只要?播地址?樣,就可以互相發現。
1. 提供?啟動時?播??的地址
2. 消費?啟動時?播訂閱請求
3. 提供?收到訂閱請求時,單播??的地址給訂閱者,如果設置了  unicast=false  ,則?播給訂閱者
4. 消費?收到提供?地址時,連接該地址進? RPC 調?。
組播受?絡結構限制,只適合?規模應?或開發階段使?。組播地址段: 224.0.0.0 - 239.255.255.255
配置
<dubbo:registry address="multicast://224.5.6.7:1234" />

<dubbo:registry protocol="multicast" address="224.5.6.7:1234" />
為了減少?播量,Dubbo 缺省使?單播發送提供者地址信息給消費者,如果?個機器上同時啟了多個消費者進程,消費
者需聲明  unicast=false  ,否則只會有?個消費者能收到消息:
<dubbo:registry address="multicast://224.5.6.7:1234?unicast=false" />

<dubbo:registry protocol="multicast" address="224.5.6.7:1234">
<dubbo:parameter key="unicast" value="false" />
</dubbo:registry>

zookeeper 注冊中?
Zookeeper 是 Apacahe Hadoop 的?項?,是?個樹型的?錄服務,?持變更推送,適合作為 Dubbo 服務的注冊中
?,?業強度較?,可?于?產環境,并推薦使? 。
流程說明:
服務提供者啟動時: 向  /dubbo/com.foo.BarService/providers  ?錄下寫???的 URL 地址
服務消費者啟動時: 訂閱  /dubbo/com.foo.BarService/providers  ?錄下的提供者 URL 地址。并向
/dubbo/com.foo.BarService/consumers  ?錄下寫???的 URL 地址
監控中?啟動時: 訂閱  /dubbo/com.foo.BarService  ?錄下的所有提供者和消費者 URL 地址。
?持以下功能:
當提供者出現斷電等異常停機時,注冊中?能?動刪除提供者信息
當注冊中?重啟時,能?動恢復注冊數據,以及訂閱請求
當會話過期時,能?動恢復注冊數據,以及訂閱請求
當設置  <dubbo:registry check="false" />  時,記錄失敗注冊和訂閱請求,后臺定時重試
可通過  <dubbo:registry username="admin" password="1234" />  設置 zookeeper 登錄信息
可通過  <dubbo:registry group="dubbo" />  設置 zookeeper 的根節點,不設置將使??根樹
?持  *  號通配符  <dubbo:reference group="*" version="*" />  ,可訂閱服務的所有分組和所有版本的提供者
使?
在 provider 和 consumer 中增加 zookeeper 客戶端 jar 包依賴:
<dependency>
<groupId>org.apache.zookeeper</groupId>
<artifactId>zookeeper</artifactId>
<version>3.3.3</version>
</dependency>
或直接下載。
Dubbo ?持 zkclient 和 curator 兩種 Zookeeper 客戶端實現:
 
使? zkclient 客戶端
從  2.2.0  版本開始缺省為 zkclient 實現,以提升 zookeeper 客戶端的健狀性。zkclient 是 Datameer 開源的?個
Zookeeper 客戶端實現。
缺省配置:
<dubbo:registry ... client="zkclient" />
或:
dubbo.registry.client=zkclient
或:
zookeeper://10.20.153.10:2181?client=zkclient
需依賴或直接下載:
<dependency>
<groupId>com.github.sgroschupf</groupId>
<artifactId>zkclient</artifactId>
<version>0.1</version>
</dependency>
使? curator 客戶端
從  2.3.0  版本開始?持可選 curator 實現。Curator 是 Netflix 開源的?個 Zookeeper 客戶端實現。
如果需要改為 curator 實現,請配置:
<dubbo:registry ... client="curator" />
或:
dubbo.registry.client=curator
或:
zookeeper://10.20.153.10:2181?client=curator
需依賴或直接下載:
<dependency>
<groupId>com.netflix.curator</groupId>
<artifactId>curator-framework</artifactId>
<version>1.1.10</version>
</dependency>
Zookeeper 單機配置:
<dubbo:registry address="zookeeper://10.20.153.10:2181" />

或:
<dubbo:registry protocol="zookeeper" address="10.20.153.10:2181" />
Zookeeper 集群配置:
<dubbo:registry address="zookeeper://10.20.153.10:2181?backup=10.20.153.11:2181,10.20.153.12:2181" />
或:
<dubbo:registry protocol="zookeeper" address="10.20.153.10:2181,10.20.153.11:2181,10.20.153.12:2181" />
同? Zookeeper,分成多組注冊中?:
<dubbo:registry id="chinaRegistry" protocol="zookeeper" address="10.20.153.10:2181" group="china" />
<dubbo:registry id="intlRegistry" protocol="zookeeper" address="10.20.153.10:2181" group="intl" />
zookeeper 安裝
安裝?式參?: Zookeeper安裝?冊,只需搭?個原?的 Zookeeper 服務器,并將 Quick Start 中 Provider 和
Consumer ?的  conf/dubbo.properties  中的  dubbo.registry.addrss  的值改為  zookeeper://127.0.0.1:2181  即可使
?。
可靠性聲明
阿?內部并沒有采? Zookeeper 做為注冊中?,?是使???實現的基于數據庫的注冊中?,即:Zookeeper 注冊中
?并沒有在阿?內部?時間運?的可靠性保障,此 Zookeeper 橋接實現只為開源版本提供,其可靠性依賴于
Zookeeper 本身的可靠性。
兼容性聲明
因  2.0.8  最初設計的 zookeeper 存儲結構不能擴充不同類型的數據, 2.0.9  版本做了調整,所以不兼容,需全部改
?  2.0.9  版本才?,以后的版本會保持兼容  2.0.9  。 2.2.0  版本改為基于 zkclient 實現,需增加 zkclient 的依賴
包, 2.3.0  版本增加了基于 curator 的實現,作為可選實現策略。
. 建議使?  2.3.3  以上版本的 zookeeper 注冊中?客戶端 ?

Redis 注冊中?
基于 Redis 實現的注冊中? 。
使? Redis 的 Key/Map 結構存儲數據結構:
主 Key 為服務名和類型
Map 中的 Key 為 URL 地址
Map 中的 Value 為過期時間,?于判斷臟數據,臟數據由監控中?刪除
使? Redis 的 Publish/Subscribe 事件通知數據變更:
通過事件的值區分事件類型: register  ,  unregister  ,  subscribe  ,  unsubscribe
普通消費者直接訂閱指定服務提供者的 Key,只會收到指定服務的  register  ,  unregister  事件
監控中?通過  psubscribe  功能訂閱  /dubbo/*  ,會收到所有服務的所有變更事件
調?過程:
1. 服務提供?啟動時,向  Key:/dubbo/com.foo.BarService/providers  下,添加當前提供者的地址
2. 并向  Channel:/dubbo/com.foo.BarService/providers  發送  register  事件
3. 服務消費?啟動時,從  Channel:/dubbo/com.foo.BarService/providers  訂閱  register  和  unregister  事件
4. 并向  Key:/dubbo/com.foo.BarService/providers  下,添加當前消費者的地址
5. 服務消費?收到  register  和  unregister  事件后,從  Key:/dubbo/com.foo.BarService/providers  下獲取提供者地
址列表
6. 服務監控中?啟動時,從  Channel:/dubbo/*  訂閱  register  和  unregister  ,以及  subscribe  和 unsubsribe  事件
7. 服務監控中?收到  register  和  unregister  事件后,從  Key:/dubbo/com.foo.BarService/providers  下獲取提供者
地址列表
8. 服務監控中?收到  subscribe  和  unsubsribe  事件后,從  Key:/dubbo/com.foo.BarService/consumers  下獲取消費
者地址列表
配置
<dubbo:registry address="redis://10.20.153.10:6379" />

<dubbo:registry address="redis://10.20.153.10:6379?backup=10.20.153.11:6379,10.20.153.12:6379" />

<dubbo:registry protocol="redis" address="10.20.153.10:6379" />

<dubbo:registry protocol="redis" address="10.20.153.10:6379,10.20.153.11:6379,10.20.153.12:6379" />
選項
可通過  <dubbo:registry group="dubbo" />  設置 redis 中 key 的前綴,缺省為  dubbo  。
可通過  <dubbo:registry cluster="replicate" />  設置 redis 集群策略,缺省為  failover  :
failover  : 只寫?和讀取任意?臺,失敗時重試另?臺,需要服務器端??配置數據同步
replicate  : 在客戶端同時寫?所有服務器,只讀取單臺,服務器端不需要同步,注冊中?集群增?,性能壓
?也會更?
可靠性聲明
阿?內部并沒有采? Redis 做為注冊中?,?是使???實現的基于數據庫的注冊中?,即:Redis 注冊中?并沒有在
阿?內部?時間運?的可靠性保障,此 Redis 橋接實現只為開源版本提供,其可靠性依賴于 Redis 本身的可靠性。
安裝
安裝?式參?: Redis安裝?冊,只需搭?個原?的 Redis 服務器,并將 Quick Start 中 Provider 和 Consumer ?的
conf/dubbo.properties  中的  dubbo.registry.addrss  的值改為  redis://127.0.0.1:6379  即可使?。
. Redis 是?個?效的 KV 存儲服務器 ?
. 從  2.1.0  版本開始?持 ?
. Redis 過期數據通過?跳的?式檢測臟數據,服務器時間必須同步,并且對服務器有?定壓?,否則過期檢測
會不準確 ?


Simple 注冊中?
Simple 注冊中?本身就是?個普通的 Dubbo 服務,可以減少第三?依賴,使整體通訊?式?致。
配置
將 Simple 注冊中?暴露成 Dubbo 服務:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:dubbo="http://code.alibabatech.com/schema/dubbo"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans
/spring-beans-2.5.xsdhttp://code.alibabatech.com/schema/dubbo http://code.alibabatech.com/schema/dubbo/dubbo.xs
d">
<!-- 當前應?信息配置 -->
<dubbo:application name="simple-registry" />
<!-- 暴露服務協議配置 -->
<dubbo:protocol port="9090" />
<!-- 暴露服務配置 -->
<dubbo:service interface="com.alibaba.dubbo.registry.RegistryService" ref="registryService" registry="N/A"
ondisconnect="disconnect" callbacks="1000">
<dubbo:method name="subscribe"><dubbo:argument index="1" callback="true" /></dubbo:method>
<dubbo:method name="unsubscribe"><dubbo:argument index="1" callback="false" /></dubbo:method>
</dubbo:service>
<!-- 簡單注冊中?實現,可??擴展實現集群和狀態同步 -->
<bean id="registryService" class="com.alibaba.dubbo.registry.simple.SimpleRegistryService" />
</beans>
引? Simple Registry 服務:
<dubbo:registry address="127.0.0.1:9090" />
或者:
<dubbo:service interface="com.alibaba.dubbo.registry.RegistryService" group="simple" version="1.0.0" ... >
或者:
<dubbo:registry address="127.0.0.1:9090" group="simple" version="1.0.0" />
適?性說明
此  SimpleRegistryService  只是簡單實現,不?持集群,可作為?定義注冊中?的參考,但不適合直接?于?產環境。
 

Telnet 命令參考?冊
從  2.0.5  版本開始,dubbo 開始?持通過 telnet 命令來鏡像服務治理。
使?
telnet localhost 20880
或者:
echo status | nc -i 1 localhost 20880
status命令所檢查的資源也可以擴展,參?:擴展參考?冊。
命令
以下展示了 dubbo 內建的 telnet 命令的說明和?法,此外,telnet 命令還?持?戶??擴展,參?:Telnet 命令擴展。
ls
1.  ls  : 顯示服務列表
2.  ls -l  : 顯示服務詳細信息列表
3.  ls XxxService  : 顯示服務的?法列表
4.  ls -l XxxService  : 顯示服務的?法詳細信息列表
ps
1.  ps  : 顯示服務端?列表
2.  ps -l  : 顯示服務地址列表
3.  ps 20880  : 顯示端?上的連接信息
4.  ps -l 20880  : 顯示端?上的連接詳細信息
cd
1.  cd XxxService  : 改變缺省服務,當設置了缺省服務,凡是需要輸?服務名作為參數的命令,都可以省略服務參數
2.  cd /  : 取消缺省服務
pwd
pwd  : 顯示當前缺省服務
trace
1.  trace XxxService  : 跟蹤 1 次服務任意?法的調?情況
2.  trace XxxService 10  : 跟蹤 10 次服務任意?法的調?情況
3.  trace XxxService xxxMethod  : 跟蹤 1 次服務?法的調?情況
4.  trace XxxService xxxMethod 10  : 跟蹤 10 次服務?法的調?情況
11 telnet 命令參考?冊
145
count
1.  count XxxService  : 統計 1 次服務任意?法的調?情況
2.  count XxxService 10  : 統計 10 次服務任意?法的調?情況
3.  count XxxService xxxMethod  : 統計 1 次服務?法的調?情況
4.  count XxxService xxxMethod 10  : 統計 10 次服務?法的調?情況
invoke
1.  invoke XxxService.xxxMethod({"prop": "value"})  : 調?服務的?法
2.  invoke xxxMethod({"prop": "value"})  : 調?服務的?法(?動查找包含此?法的服務)
status
1.  status  : 顯示匯總狀態,該狀態將匯總所有資源的狀態,當全部 OK 時則顯示 OK,只要有?個 ERROR 則顯示
ERROR,只要有?個 WARN 則顯示 WARN
2.  status -l  : 顯示狀態列表
log
1.  log debug  : 修改 dubbo logger 的?志級別
2.  log 100  : 查看 file logger 的最后 100 字符的?志
help
1.  help  : 顯示 telnet 命幫助信息
2.  help xxx  : 顯示xxx命令的詳細幫助信息
clear
1.  clear  : 清除屏幕上的內容
2.  clear 100  : 清除屏幕上的指定?數的內容
exit
exit  : 退出當前 telnet 命令?
.  2.0.6  以上版本?持 ?

關于 zookeeper注冊中心的對比是什么樣的就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

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

AI

土默特左旗| 曲沃县| 石家庄市| 梁平县| 四平市| 丰镇市| 肃南| 广饶县| 庄河市| 合阳县| 肥城市| 大埔县| 山丹县| 万全县| 平潭县| 陆良县| 长乐市| 阳新县| 吴川市| 吉林市| 凌云县| 安塞县| 横峰县| 耒阳市| 晋城| 安远县| 龙江县| 平谷区| 石嘴山市| 阜康市| 商丘市| 滦平县| 大悟县| 余江县| 青神县| 阿巴嘎旗| 仙居县| 自治县| 远安县| 株洲市| 赣州市|