精品欧美一区二区三区在线观看 _久久久久国色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技術棧公眾號

视频在线日韩| 黄色片中文字幕| 136导航精品福利| 天天综合天天综合色| 精品在线视频一区| 亚洲天堂av在线免费观看| 另类小说第一页| 高清不卡一区二区三区| 日本欧美一区二区三区不卡视频| 国产福利亚洲| 亚洲成人av福利| 亚洲精品成人自拍| 狠狠躁日日躁夜夜躁av| 青青草国产成人av片免费| 欧美激情小视频| 国产美女免费网站| 成人偷拍自拍| 91精品国产欧美一区二区成人| www.射射射| 日本成人在线播放| www激情久久| 91久久精品国产91久久性色tv| 国产精品免费无遮挡无码永久视频| 国产精品hd| 久久视频免费在线播放| 亚洲精品乱码久久久久久久久久久久 | 国产一级在线观看视频| 成人短片线上看| 日韩精品免费一线在线观看| 欧美精品色视频| 色婷婷成人网| 欧美日韩在线电影| 国产精品啪视频| 免费成人看片网址| 欧美性受xxx黑人xyx性爽| 今天的高清视频免费播放成人| 日韩在线视频播放| 日韩人妻无码精品综合区| 欧美日韩一本| 亚洲国产成人久久| 精品人妻一区二区免费| 免费欧美网站| 欧美一区欧美二区| 中文字幕成人免费视频| 精品视频在线一区二区在线| 日韩欧美精品在线观看| 日韩在线一级片| 狼人综合视频| 精品国产鲁一鲁一区二区张丽| 300部国产真实乱| 怡红院红怡院欧美aⅴ怡春院| 最新日韩av在线| av磁力番号网| 97影院秋霞午夜在线观看| 亚洲精品日产精品乱码不卡| 亚洲免费av网| caopen在线视频| 亚洲精品视频在线看| 国产午夜精品视频一区二区三区| a在线视频观看| 在线观看亚洲国产| 美女一区二区三区| 国产噜噜噜噜噜久久久久久久久| 中文无码精品一区二区三区| 久久国内精品自在自线400部| 国产精品视频不卡| 国产精品玖玖玖| 国产麻豆午夜三级精品| 成人91视频| 亚洲 小说区 图片区 都市| 久久综合九色综合欧美就去吻| 久久久com| 国产美女视频一区二区三区| 中文字幕一区二区三区乱码在线| ijzzijzzij亚洲大全| 欧美xxxx免费虐| 大伊人狠狠躁夜夜躁av一区| 一本久道中文无码字幕av| 成人黄色毛片| 91精品在线观看入口| 精品人妻在线视频| 伊人久久大香线蕉综合网蜜芽| 亚洲色图美腿丝袜| 91嫩草|国产丨精品入口| 在线成人av| 国产精品久久久久久av福利软件| 国产又大又粗又长| 99视频精品在线| 亚洲a∨一区二区三区| 50度灰在线| 精品国产乱码久久久久久婷婷 | 国产在线视频一区二区| 国产伦一区二区三区色一情| 二区三区在线| 亚洲国产aⅴ成人精品无吗| 免费日韩视频在线观看| 激情综合五月| 亚洲欧美精品一区| 四虎永久在线观看| 国产精品免费大片| www.日韩.com| 日韩无码精品一区二区三区| 黄色av免费观看| 成人精品一区二区三区四区| 欧美日韩精品中文字幕一区二区| 性色av一区二区三区红粉影视| 日韩在线观看第一页| 久久精品99国产精品日本| 国产精品推荐精品| 精品国产丝袜高跟鞋| 精品国产成人在线| 国产老头和老头xxxx×| 成人在线免费视频观看| 91精品国产高清久久久久久久久| 91国产免费视频| 国产午夜三级一区二区三| 日韩视频在线视频| 久久在线观看| 中文字幕亚洲专区| 天天操天天操天天操天天| 国产精品综合在线视频| 一区二区91美女张开腿让人桶| 老司机深夜福利在线观看| 日韩精品一区二区三区视频| 老头老太做爰xxx视频| 亚洲美女黄网| 成人黄色免费网站在线观看| 国产美女视频一区二区三区| 欧美日韩色婷婷| 中国xxxx性xxxx产国| 香蕉精品视频在线观看| 国产精品美女久久久免费| 亚洲aaaaaaa| 午夜精品久久久久久久久久久| 亚欧精品在线视频| 99久久精品费精品国产风间由美| 国产精品电影在线观看| 麻豆导航在线观看| 欧美色视频日本版| 黑人中文字幕一区二区三区| 奇米777第四色| 91精品成人| 国产在线观看精品一区二区三区| h视频在线观看免费| 91国模大尺度私拍在线视频 | 国产成人av电影在线播放| 国产成人精品免费看在线播放 | 国产7777777| 青青草97国产精品免费观看无弹窗版 | 日本一区二区高清| 一级在线免费视频| 99久久激情| 91黄在线观看| 超免费在线视频| 亚洲国产高清自拍| 性无码专区无码| 国产色91在线| 日本黄色福利视频| 欧美成人中文| 国产欧美日韩在线播放| 高清精品在线| 亚洲色图13p| 国产一区二区三区黄片| 亚洲免费高清视频在线| 日本精品一二三区| 午夜在线一区| 日韩久久在线| 国模大尺度视频一区二区| 欧美大片在线看免费观看| 日本韩国免费观看| 色综合一个色综合| 国产精品一区二区亚洲| 国产精品主播直播| 亚洲美免无码中文字幕在线| 精品在线观看入口| 国产免费亚洲高清| 欧美午夜大胆人体| 亚洲欧洲一区二区三区在线观看| 中文字幕一二三四| 夜夜精品视频一区二区| www.久久av| 国产中文字幕精品| 欧美国产综合色视频| 成人av毛片在线观看| jizz性欧美10| 日本不卡不码高清免费观看| 亚洲国产精品视频一区| 亚洲伊人伊色伊影伊综合网| 国产精品第七页| 美女视频黄 久久| 欧美黄色免费网址| 希岛爱理av免费一区二区| 国产免费一区二区三区在线能观看 | 视频一区视频二区欧美| 欧美亚洲另类视频| 美女国产在线| 日韩精品亚洲元码| 99精品国产99久久久久久97| 欧美日韩激情视频| 国产精品丝袜一区二区| 久久九九99视频| 国产无套精品一区二区三区| 午夜在线视频一区二区区别| 成人高清dvd| 久久一本综合| 久久久久久一区| 国产一区二区三区免费在线 | 欧美经典影片视频网站| 欧美性视频在线| caopo在线| 尤物精品国产第一福利三区| 日韩美女爱爱视频| 国产精品xxx在线观看| 国产精品永久在线| 亚洲性受xxx喷奶水| 亚洲私拍自拍| 国产成人福利网站| 2020国产在线| 精品中文字幕乱| 日韩理伦片在线| 亚洲视频在线免费观看| 性xxxx视频| 精品国精品自拍自在线| 国产精品久久久午夜夜伦鲁鲁| 色先锋aa成人| 欧美日韩精品区| 亚洲曰韩产成在线| 视频这里只有精品| 中文字幕一区二区三区色视频| 免费看污片网站| 99re这里只有精品首页| 美女又黄又免费的视频| 韩国v欧美v亚洲v日本v| 三级在线视频观看| 日韩一区精品字幕| 欧美女人性生活视频| 日韩视频在线一区二区三区| 日本黄大片在线观看| 亚洲精品电影| 亚洲天堂av免费在线观看| 四虎成人精品永久免费av九九| 日本午夜精品电影| 国产日产精品一区二区三区四区的观看方式| 国产精品二区在线| 综合视频一区| 国产尤物99| 狼人精品一区二区三区在线| 国产露脸91国语对白| 国产·精品毛片| 午夜激情影院在线观看| 美女精品自拍一二三四| 日本特黄a级片| 蜜桃av一区二区三区| 亚洲一级免费在线观看| 精品亚洲国内自在自线福利| 在线免费黄色网| 国产精品自拍在线| 亚洲欧美中文日韩在线| 日本ー区在线视频| 亚洲天堂一区二区三区| www.黄色网址.com| av漫画网站在线观看| 97婷婷涩涩精品一区| 在线观看的黄色| 国产精品aaa| 国产精品777777在线播放| 97人人模人人爽人人少妇| 国产精品对白久久久久粗| 精品国产_亚洲人成在线| 九九热线有精品视频99| 亚洲欧洲一区二区在线观看| 一本一本久久a久久综合精品| 真实国产乱子伦对白视频| 亚洲啪啪91| 一道本视频在线观看| 国精产品一区一区三区mba视频| 无码人妻aⅴ一区二区三区玉蒲团| 白白色 亚洲乱淫| www.黄色在线| 亚洲免费在线观看视频| 欧美三级一区二区三区| 欧美日韩国产精品成人| www夜片内射视频日韩精品成人| 日韩av在线直播| 日本高清视频在线播放| 午夜精品三级视频福利| 一区二区视频免费完整版观看| 亚洲精品免费网站| 九九在线高清精品视频| 一二三四中文字幕| 日韩精品一二三| 无码国产精品一区二区免费式直播| 久久久久亚洲综合| 久久久国产精华液| 在线看不卡av| 黄色片网站免费在线观看| 中文字幕精品—区二区| 亚洲精品老司机| 特级西西人体4444xxxx| 国产欧美日产一区| 国产亚洲欧美久久久久| 在线观看欧美精品| 免费国产精品视频| 日韩中文字幕在线精品| 国产高清自产拍av在线| 国产精品国产三级国产aⅴ无密码| 国产一级在线播放| 欧美日韩国产大片| 青春草在线观看| 久久久久久网址| 国产亚洲字幕| 亚洲欧美成人一区| 少妇愉情理伦片bd| 久久99日本精品| 日韩精品卡通动漫网站| 亚洲激情在线激情| 国产女人爽到高潮a毛片| 亚洲精品视频播放| xxx性欧美| 99国产在线| 国产精品久久久久久久成人午夜| 国产成人三级在线观看| 女人黄色一级片| 日韩欧美黄色动漫| 亚洲av成人精品日韩在线播放| 欧美交受高潮1| 中文字幕一区二区三区中文字幕 | 国产成人av免费观看| 国产精品久久久久久久久免费相片 | 蜜桃成人精品| 麻豆成人在线播放| 99精品热视频只有精品10| 国产白袜脚足j棉袜在线观看| 亚洲精品成人天堂一二三| 一区二区三区黄色片| 中文字幕精品av| 欧美一级网址| 综合国产精品久久久| 精品写真视频在线观看| youjizz亚洲女人| 欧美日韩一区小说| 幼a在线观看| 国产欧美婷婷中文| 久久精品国产大片免费观看| 成人黄色一级大片| 亚洲欧美日韩在线| 精品人妻无码一区二区| 欧美日本高清一区| av不卡一区二区| 免费av手机在线观看| 不卡电影免费在线播放一区| 中日韩精品视频在线观看| 日韩精品在线观| 日韩欧美少妇| 亚洲美女自拍偷拍| 国产精品888| 91av视频在线观看| 成人av动漫| 91av资源网| 国产欧美日韩精品一区| 在线播放亚洲精品| 精品中文字幕在线| 精品国产一区二区三区成人影院| 欧美成人免费在线观看视频| 久久网站最新地址| 欧美性受xxx黑人xyx性爽| 久久久av电影| 久9re热视频这里只有精品| 人妻有码中文字幕| 日韩av综合| 免费观看国产视频在线| 成人做爰69片免费看网站| 六月丁香激情综合| www.午夜精品| 136导航精品福利| 精品久久久久久久无码| 亚洲欧洲中文日韩久久av乱码| 免费观看黄色av| 久久久久久久久丰满| 天天操,天天操| 一区二区三区精品在线观看| 污视频在线免费观看| 国产免费观看久久黄| 影音先锋日韩资源| 亚洲精品国产精品国自| 亚洲成人999| 成人在线中文| 国产精品成人久久电影| 中文一区二区完整视频在线观看| 国产高清免费观看| 国产精品99久久久久久白浆小说| 亚洲情侣在线| 欧美成人国产精品一区二区| 欧美一区二区在线免费播放| 中文在线а√天堂| 欧美a级黄色大片| 国产日韩精品久久久| 亚洲高清视频网站| 国产欧美婷婷中文| 美女91精品|