精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

NameServer、Zookeeper,傻傻分不清楚

云計算
消息隊列RocketMQ版是阿里云基于Apache RocketMQ構建的低延遲、高并發、高可用、高可靠的分布式消息中間件。

[[386520]]

本文轉載自微信公眾號「大魚仙人」,作者大魚。轉載本文請聯系大魚仙人公眾號。

消息隊列RocketMQ版是阿里云基于Apache RocketMQ構建的低延遲、高并發、高可用、高可靠的分布式消息中間件。

我們知道RocketMQ是個消息隊列,這個消息隊列是分為多個組件的,其中包括broker、producer、consumer等,那么這些個組件之間如何交互呢?或者說它們如何獲得對方的狀態呢

 

大魚相信聰明的你應該已經猜到了,就是通過一個注冊中心來控制,其實大魚本人我在寫這篇文章之前一直在糾結到底如何稱呼NameServer在RocketMQ中的地位呢?

說是大腦吧,但是它又不完全算是指揮中心,也沒有存儲消息(消息存儲在broker中),大腦中應該是存儲這這些才有資格叫做大腦吧;要說不是大腦吧,它又存在一部分的指揮作用,producer發送消息,需要先通過NameServer獲取到broker和Topic的對應關系,獲取到broker的地址信息,再去長連接broker來發送消息,而且還和broker之間有著心跳機制來維持broker的存活狀態,維持整個集群的穩定性和可用性

所以,大魚我給NameServer起名叫做 偽大腦 ;

啥玩意?偽大腦,那是不是還有真大腦呢?真大腦是什么?

我真是太喜歡好奇的你了,一猜你就是風華正茂,愛好學習的中華好兒女,沒錯,我賣關子其實就是下一篇咱們要一起學習的broker,這是RocketMQ中最核心的了,因為很多邏輯控制都是在這里邊完成(定時延時、半消息),還有存儲消息的文件、存儲消費offset的文件等等

 

NameServer

NameServer是什么

知其然,再知其所以然,那到底NameServer是個什么東西呢?

NameServer是一個非常簡單的Topic路由注冊中心,其角色類似Dubbo中的zookeeper,支持Broker的動態注冊與發現。NameServer是一個幾乎無狀態節點,可集群部署,節點之間無任何信息同步。

NameServer存儲Topic和Broker的信息,Broker啟動的時候會向所有的NameServer注冊。Producer在發送消息之前會先從NameServer獲取Broker地址列表,按照負載均衡算法從列表中選擇一臺Broker服務器發送消息

NameServer和Broker保持長連接,每隔30s檢測Broker是否存活,如果Broker宕機,從路由注冊表中刪除。路由變化不會馬上通知Producer,這樣實現降低了NameServer實現復雜度,Producer會通過容錯機制來保證消息發送高可用。

 

Producer與Name Server集群中的其中一個節點(隨機選擇)建立長連接,定期從Name Server取Topic路由信息,并向提供Topic服務的Master建立長連接,且定時向Master發送心跳。Producer完全無狀態,可集群部署。

Consumer與Name Server集群中的其中一個節點(隨機選擇)建立長連接,定期從Name Server取Topic路由信息,并向提供Topic服務的Master、Slave建立長連接,且定時向Master、Slave發送心跳。Consumer既可以從Master訂閱消息,也可以從Slave訂閱消息,訂閱規則由Broker配置決定。

NameServer集群

RocketMQ集群,應該是線上采用的相當多的一種架構了,分為四個主要組成部分:生產者集群、消費者集群、NameServer集群和Broker集群,其中的NameServer集群是什么樣子的呢?這個還挺有意思的,和別的集群不太一樣,一起來看看為啥

我們了解的集群,一般都是互幫互助,起到一個高可用的作用;絕大多數集群應該都是這個樣子的,而NameServer集群卻不是這個樣子的,NameServer集群說白了其實屬于一個偽集群,為什么這么說呢?

因為NameServer集群中的多個節點是互不交互的,就是等同于多個獨立的NameServer機器部署在NameServer集群中,每個機器都可以單獨支持這個集群的運轉,多個機器的作用其實就是備份的作用

 

NameServer集群如何部署

NameServer 是整個集群的路由中心,如果沒有了它,生產者往哪個 Broker 投遞消息都不知道,沒有了它,會很麻煩!

為了保證高可用性,NameServer 必然是需要支持多臺部署的。如果 NameServer 就部署一臺機器的話,一旦它宕機了會導致 RocketMQ 集體出現故障。

所以多機器部署保證了任何一臺 NameServer 宕機,其他機器上的 NameServer 可以繼續對外提供服務。

如果NameServer集群中的一個機器掛掉了怎么辦,對集群有什么影響

對于整個RocketMQ集群來說問題不大,因為設計優秀的RocketMQ集群不會因為一臺NameServer機器掛掉而導致整個集群受影響甚至不可用。一般我們會有報警系統來報警關于NameServer機器掛掉的信息,有相應的運維人員再去處理

 

NameServer作用

NameServer是一個非常簡單的Topic路由注冊中心,其角色類似Dubbo中的zookeeper,支持Broker的動態注冊與發現。NameServer是一個幾乎無狀態節點,可集群部署,節點之間無任何信息同步。

NameServer在RocketMQ集群中起到了類似于注冊中心的作用,我們先來看下NameServer的源碼架構

 

其實結構也很簡單,不算復雜,大家如果有興趣研究,可以花點時間去研究,源碼地址:

https://github.com/rocketmq

NameServer在RocketMQ中的作用大概大魚同學給分了三類,叫做路由管理、路由發現和路由刪除,也很好理解,來,我給大家簡單解釋下

  • 路由管理就是保存著broker的活躍列表和Topic對應的關系
  • 路由注冊和發現就是Topic對應的broker信息發生變化時的更新(非實時性)
  • 路由刪除就是對于broker機器宕機或者關閉時自動刪除相應路由

我們知道broker和NameServer的關系是很緊密的,單個broker會和所有的NameServer保持長連接,broker啟動時會輪詢所有的NameServer并進行注冊

broker每隔30秒(此時間沒有辦法更改的哦,切記哦)會向所以的NameServer發送心跳,心跳包含了所有的Topic信息

由此可以看出:如果broker中包含太多Topic,心跳信息過大的話可能會造成網絡傳輸較慢

NameServer每隔10秒也會掃描所有存活著的broker的,這個時間也是無法更改的,若某個連接2分鐘內(當前時間與最后更新時間差值超過2分鐘,此時間無法更改)沒有發送心跳數據,則斷開連接,一旦連接斷開,nameserver會感知,感知會有稍稍的延遲,為啥延遲我應該不用說了吧?

接著就是更新topc與隊列的對應關系,但不會通知生產者和消費者

路由管理:保存著broker的活躍列表和Topic對應的隊列列表

NameServer保存著活躍的broker列表,包括master和slave;NameServer用來保存所有的Topic和Topic對應的所有隊列的列表;NameServer用來保存所有的broker的filter列表

這些在RouteInfoManager這個類中都有

 

每個屬性通過名字就能清楚的知道是什么意思,之所以能用非線程安全的HashMap,是因為有讀寫鎖lock來對HashMap的修改做保護。

我們注意到保存broker的Map有兩個,即brokerAddrTable用來保存所有的broker列表和brokerLiveTable用來保存當前活躍的broker列表,而BrokerData用來保存broker的主要新增,而BrokerLiveInfo只用來保存上次更新(心跳)時間

 

你幾乎可以在NameServer這里知道topic相關的所有信息,包括topic有哪些隊列,這些隊列在那些broker上等。

DefaultRequestProcessor是NameServer的默認請求處理器,他處理了定義在rocketmq-common模塊中RequestCode定義的部分請求,比如注冊broker、注銷broker、獲取topic路由、刪除topic、獲取broker的topic權限、獲取NameServer的所有topic等

路由注冊和發現:Broker的啟動注冊和Topic的關系變動

Broker在啟動時向所有的NameServer心跳語句,每隔30S向所有NameServer發起心跳包。NameServer收到心跳包后更新緩存。NameServer每隔10S掃描brokerLiveTable,如果連續120S沒有收到心跳包,則NameServer移除Broker的路由信息同時關閉Socket連接。

路由注冊在broker啟動時觸發,broker啟動時會和所有NameServer創建心跳連接,向NameServer發送Broker的相關信息。NameServer在RouteInfoManager類中維護了Broker相關信息的緩存,進行更新動作。更新時用了讀寫鎖,既保證了極高并發場景下的讀效率,又避免了并發修改緩存。

 

路由發現:RocketMQ的路由發現是非實時的。當topic對應的路由信息發生變化,NameServer并不會通知給客戶端。而是由客戶端定時拉取Topic對應的最新路由。不實時的路由發現引起的問題由客戶端進行解決,保證了NameServer邏輯的簡潔。客戶端定時向NameServer發起請求GET_ROUTEINFO_BY_TOPIC,獲取對應的信息

路由刪除:對于宕機或者關閉的broker,自動刪除相應的路由信息

路由刪除的觸發點有兩個:

  • NameServer啟動時開啟的定時任務,每隔10s掃描一次brokerLiveTable,檢測上次心跳包與當前系統時間差,如果時間差大于120s,則移除Broker的相關信息。
  • Broker正常關閉,會向NameServer發送UNREGISTER_BROKER消息。

其實初期RocketMQ采用的是zookeeper作為注冊中心的,后來為什么改成自研的NameServer了?

這個問題其實我也不想太多的多說,這個可能需要了解zookeeper,如果不了解這個東西的話,其實我說了也是沒啥大用的

 

首先,zookeeper中最主要的功能就是master的選舉,但是呢?對于RocketMQ不太合適,你想啊,RocketMQ中的master并不會存在全部的Topic信息,所以選擇master沒什么意義

其次,對于RocketMQ來說,這個注冊中心的作用不僅要保存相關的信息(broker活躍列表、Topic對應信息等),還有就是需要一些邏輯來處理相應的數據,比如每隔10秒檢測一次活躍的broker來更新列表,這些邏輯如果換做是zookeeper的客戶端來處理的話,算是比較麻煩的

 

因此,既然zookeeper對于RocketMQ來說是屬于一個重量級的注冊中心,所以不如自己寫一個簡易的注冊中心來實現,像上面說的集群,NameServer集群是屬于偽集群,節點之間不存在相應的交互,只是起到一個備份的作用,這樣使得RocketMQ集群變得更加靈活

 

責任編輯:武曉燕 來源: 大魚仙人
相關推薦

2021-07-27 07:31:16

JavaArrayList數組

2022-05-15 21:52:04

typeTypeScriptinterface

2024-02-29 09:08:56

Encoding算法加密

2020-10-30 08:20:04

SD卡TF卡存儲

2018-12-17 12:30:05

Kubernetes存儲存儲卷

2018-05-22 16:24:20

HashMapJavaJDK

2020-03-03 17:35:09

Full GCMinor

2025-08-18 03:25:00

2023-02-27 15:46:19

數據元元數據

2023-09-03 21:18:07

Python編程語言

2021-02-08 23:47:51

文件存儲塊存儲對象存儲

2025-08-14 08:21:17

PODAODTO

2025-05-12 08:40:00

前端監控DOM

2016-11-04 12:51:46

Unix網絡IO 模型

2021-11-09 06:01:35

前端JITAOT

2022-02-25 09:14:33

類變量共享實例變量

2024-11-04 00:00:03

viewportDOMSPA

2025-08-26 04:00:00

2020-11-11 07:32:18

MySQL InnoDB 存儲

2023-04-11 15:57:49

JavaScriptCSSHTML
點贊
收藏

51CTO技術棧公眾號

水蜜桃av无码| 日韩av高清在线看片| 国产美女www爽爽爽视频| 狠狠色丁香久久综合频道| 日韩成人中文字幕| 欧美黄色性生活| 午夜小视频在线观看| 99视频国产精品| 国产美女搞久久| 日韩在线观看第一页| 欧美电影免费播放| 日韩成人在线视频| gogo亚洲国模私拍人体| 姬川优奈av一区二区在线电影| 国产精品久久久久久久久晋中 | 欧美精品中文字幕亚洲专区| 色婷婷综合久久| 欧美中文字幕在线观看视频 | 欧美精品免费在线| www在线观看免费视频| 亚洲专区**| 欧美日韩国产天堂| 久久婷婷五月综合色国产香蕉| 国产精品剧情| 中文字幕不卡一区| 免费观看国产成人| 香蕉视频免费看| 成人性生交大片免费看中文网站| 国产欧美精品va在线观看| 99久久精品国产亚洲| 激情欧美国产欧美| 蜜臀久久99精品久久久无需会员| 亚洲黄色免费视频| 神马香蕉久久| 亚洲国产成人久久| 中文字幕人妻熟女在线| 亚洲日本视频在线| 日韩午夜精品电影| 免费黄频在线观看| 国产精品久久久久久av公交车| 欧美艳星brazzers| 成人亚洲视频在线观看| 亚洲性受xxx喷奶水| 亚洲成av人影院| 国产九色porny| 成人性生交大片免费看网站 | 成人午夜免费在线视频| a视频在线免费看| 亚洲美女免费视频| 欧美性受黑人性爽| 在线观看中文| 一区二区三区四区国产精品| 狠狠精品干练久久久无码中文字幕 | 国产九色精品成人porny | 日韩三区视频| 国产婷婷97碰碰久久人人蜜臀 | 日韩一区在线看| 黄色免费高清视频| 污污网站在线看| 亚洲国产精品久久艾草纯爱| 婷婷无套内射影院| 欧美巨大丰满猛性社交| 色狠狠桃花综合| 国产九九在线视频| 9999在线精品视频| 日韩你懂的电影在线观看| 四虎成人免费视频| 偷拍视屏一区| 中文字幕精品网| 波多野结衣喷潮| 欧美日韩一区二区高清| 97精品一区二区视频在线观看| 国产成人啪精品午夜在线观看| 一本久道久久综合婷婷鲸鱼| 热99精品里视频精品| 亚洲av无码乱码国产精品fc2| 久久国产成人午夜av影院| 亚洲一区久久久| 深爱激情五月婷婷| 亚洲国产精品精华液ab| 特级西西人体www高清大胆| 91超碰在线播放| 在线看国产日韩| 久久综合在线观看| 开心激情综合| 精品国产一区二区三区久久| 久久精品www| 石原莉奈在线亚洲三区| 亚洲bt欧美bt日本bt| 香蕉视频免费在线看| 国产精品久久久久久久久晋中| 日本久久久网站| 欧美xnxx| 欧美大肚乱孕交hd孕妇| 亚洲无人区码一码二码三码的含义| 99精品小视频| 欧美在线性视频| 国产av无码专区亚洲av| 久久中文娱乐网| 肉大捧一出免费观看网站在线播放| 欧美极品影院| 亚洲高清不卡av| 国精品人伦一区二区三区蜜桃| 亚洲第一黄网| 91麻豆国产精品| 国产黄在线播放| 亚洲高清不卡在线观看| 日本超碰在线观看| 亚洲资源网你懂的| 久久免费观看视频| 在线免费观看视频网站| www国产亚洲精品久久麻豆| 三上悠亚免费在线观看| 精品久久在线| 亚洲一二三在线| 国产成人在线播放视频| 国产成人免费视频网站| 亚洲国产一区在线| 精品91久久| 亚洲国产精品电影| 青青草手机视频在线观看| 老司机精品视频一区二区三区| 精品欧美一区二区精品久久| 丝袜美女在线观看| 欧美日本在线看| 免费成人深夜天涯网站| 欧美亚洲在线| 九色综合婷婷综合| 24小时免费看片在线观看| 日韩免费性生活视频播放| 99re6热在线精品视频| 三级久久三级久久久| 久久精品午夜一区二区福利| 成入视频在线观看| 精品欧美乱码久久久久久1区2区| 潘金莲一级黄色片| 老司机免费视频一区二区三区| 色一情一乱一伦一区二区三区| 亚洲女同志freevdieo| 日韩av在线电影网| 午夜毛片在线观看| 91啦中文在线观看| 丝袜老师办公室里做好紧好爽| 国产厕拍一区| 78m国产成人精品视频| 天天摸天天碰天天爽天天弄| 亚洲妇熟xx妇色黄| 性色av蜜臀av色欲av| 亚洲一区二区动漫| 欧美日韩在线观看一区二区三区| 成人av免费电影网站| 亚洲欧美国产另类| 久久久999久久久| 国产精品理论片| 中文字幕人妻无码系列第三区| 亚洲女同一区| 国产精品初高中精品久久| 超碰在线网站| 亚洲欧美激情视频| 中文字幕第三页| 亚洲欧洲99久久| 免费黄色a级片| 国产日韩1区| 五码日韩精品一区二区三区视频| 激情久久一区二区| 色综合五月天导航| 亚洲人视频在线观看| 日本高清成人免费播放| 国产欧美小视频| 国产精品1区2区| 国内外成人激情视频| 不卡av一区二区| 91久久久一线二线三线品牌| 日本不卡1234视频| 永久555www成人免费| 99久久夜色精品国产亚洲| 午夜私人影院久久久久| 日本二区在线观看| 国产精品原创巨作av| 亚洲熟妇无码另类久久久| 欧美丝袜丝交足nylons172| 亚洲综合最新在线| 亚洲精品国产精品国产| 久久精品男人天堂| 欧美女v视频| 欧美一区二区视频在线观看2020 | 秋霞午夜在线观看| 精品国产乱码久久久久久浪潮| 中文字幕69页| 一区二区三区资源| 国产综合精品在线| 成人激情小说乱人伦| 国产成人av影视| 国产精品黄色| 亚洲国产日韩欧美| 亚洲精品国产setv| 亚洲一区久久久| 成人黄色在线| 97成人在线视频| 成人在线免费看片| 国产一区二区三区日韩欧美| www久久久久久| 欧美日韩一区三区四区| 在线观看亚洲天堂| 亚洲精品精品亚洲| 少妇太紧太爽又黄又硬又爽小说| 成人av免费在线| 天天色天天干天天色| 三级精品在线观看| 久久国产亚洲精品无码| 欧美啪啪一区| 一区二区三区电影| 欧美日韩激情在线一区二区三区| dy888夜精品国产专区| 国产亚洲欧美日韩精品一区二区三区| 韩国福利视频一区| 在线看三级电影| 久久精品视频中文字幕| 国产毛片av在线| 日韩电视剧免费观看网站| 朝桐光av在线一区二区三区| 欧美二区三区的天堂| 亚洲自拍一区在线观看| 亚洲va在线va天堂| 免费中文字幕在线观看| 亚洲免费资源在线播放| 日本激情视频一区二区三区| 久久久www成人免费毛片麻豆| 亚洲男女在线观看| 成人h版在线观看| 国产乱国产乱老熟300部视频| 国产一区二区女| 黄色片免费网址| 国产原创一区二区| 99九九99九九九99九他书对| 蜜桃av噜噜一区| 日本特黄a级片| 久久精品国产网站| 日韩不卡一二三| 久久er99热精品一区二区| 国产视频手机在线播放| 免费观看成人av| 黄色片视频在线| 麻豆91在线播放| 午夜视频在线网站| 国产一区二区三区在线观看免费| 一级黄色录像在线观看| 国内欧美视频一区二区| 永久看看免费大片| 懂色一区二区三区免费观看| 成人做爰www看视频软件| 成人高清免费观看| 无码人妻精品一区二区三应用大全| 91网站最新网址| 国产高清一区二区三区四区| 国产精品天天看| 永久免费看片直接| 夜夜揉揉日日人人青青一国产精品| 久一区二区三区| 欧美视频中文字幕在线| 99re热视频| 91麻豆精品久久久久蜜臀| 成人激情四射网| 日韩成人黄色av| 免费网站看v片在线a| 欧美另类在线观看| 午夜影视一区二区三区| 国产精品都在这里| 日本免费一区二区视频| 精品无人区一区二区三区 | 中文字幕av一区中文字幕天堂| 黄色网在线看| 国语自产精品视频在线看| 韩国三级一区| 亚洲伊人一本大道中文字幕| 久久精品凹凸全集| 亚洲一二三区在线| 黑人一区二区| 不卡av免费在线| 国产一区二区三区不卡在线观看| 97香蕉碰碰人妻国产欧美| 国产欧美综合在线观看第十页| 疯狂撞击丝袜人妻| 精品久久久久久亚洲精品| 在线观看日韩一区二区| 精品国产伦理网| 大胆av不用播放器在线播放 | 青春草在线视频免费观看| 国产精品久久久久久模特| 亚洲免费黄色录像| 99精品热视频| 欧美在线视频第一页| 狠狠做深爱婷婷久久综合一区| 91午夜交换视频| 精品视频久久久| 成a人v在线播放| 国产高清在线看| 在线观看欧美日韩国产| 色呦呦视频在线观看| 国产aⅴ夜夜欢一区二区三区| 亚洲香蕉久久| 久久99导航| 亚洲破处大片| 国产成人av影视| 成人av免费观看| 日本在线一级片| 色先锋aa成人| 丰满人妻一区二区三区无码av| 在线播放日韩精品| 黑森林国产精品av| 99re视频在线| 色婷婷亚洲mv天堂mv在影片| 久久久久人妻精品一区三寸| 国产精品2024| 欧美一级片在线视频| 欧美午夜精品久久久久久超碰| 日本美女一级视频| 欧美成人精品xxx| 亚洲日日夜夜| 亚洲欧洲日韩综合二区| 玖玖国产精品视频| 亚洲av网址在线| 午夜亚洲福利老司机| 国产 日韩 欧美 精品| 理论片在线不卡免费观看| 久久天堂影院| 日韩视频精品| 可以看av的网站久久看| 老牛影视av老牛影视av| 欧美日韩亚洲系列| 亚洲aⅴ在线观看| 午夜精品久久久久久久99热| 91成人短视频| 男人添女人下部视频免费| 国产精品69久久久久水密桃| 欧美日韩成人免费观看| 日韩午夜激情av| 免费观看成人高潮| 91精品视频播放| 久久精品国内一区二区三区水蜜桃| 亚洲免费看av| 国产精品天美传媒| 亚洲一级片免费看| 久久精品视频在线| 一区二区三区在线资源| 国产精品igao激情视频| 国产不卡免费视频| 国产精品成人免费一区二区视频| 精品福利av导航| 麻豆蜜桃在线观看| 欧美国产综合视频| 人人爽香蕉精品| 欧美风情第一页| 日韩欧美中文一区二区| 日韩伦理电影网站| 久久国产精品免费一区| 水蜜桃久久夜色精品一区的特点| 娇妻被老王脔到高潮失禁视频| 欧美日本在线视频| 欧美hdxxx| 免费在线成人av| 久久超碰97人人做人人爱| 欧美日韩在线视频免费| 亚洲精品动漫100p| 91精品韩国| 亚洲午夜精品久久久久久浪潮| 国产呦精品一区二区三区网站| 久久久久黄色片| 日韩激情av在线免费观看| 国产韩日精品| 糖心vlog在线免费观看| 99亚偷拍自图区亚洲| 亚洲免费视频二区| 欧美大片网站在线观看 | 欧美日韩国产一二三| 欧美性爽视频| 欧美性色黄大片人与善| 国产一区二区三区在线看麻豆| 久久黄色精品视频| 精品国产欧美一区二区三区成人| 国产精品毛片av| 亚洲成人天堂网| 亚洲超碰97人人做人人爱| 在线日本中文字幕| 国产欧美日韩伦理| 麻豆成人综合网| 圆产精品久久久久久久久久久| 中文字幕日韩专区| 久久91在线| 亚洲精品成人在线播放| 欧美日韩国产精品一区二区三区四区| 成年人视频在线看| 国产精品一区二区你懂得| 日韩成人一区二区| 五月天婷婷丁香| 久久精品2019中文字幕| 免费成人av| 在线免费看黄色片| 欧美一区二区三区思思人| 欧美大胆性生话|