中文字幕日韩精品一区二区免费_精品一区二区三区国产精品无卡在_国精品无码专区一区二区三区_国产αv三级中文在线

RocketMQ有哪些特性

這篇文章主要介紹了RocketMQ有哪些特性,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

創(chuàng)新互聯(lián)服務項目包括陸良網(wǎng)站建設、陸良網(wǎng)站制作、陸良網(wǎng)頁制作以及陸良網(wǎng)絡營銷策劃等。多年來,我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術優(yōu)勢、行業(yè)經(jīng)驗、深度合作伙伴關系等,向廣大中小型企業(yè)、政府機構等提供互聯(lián)網(wǎng)行業(yè)的解決方案,陸良網(wǎng)站推廣取得了明顯的社會效益與經(jīng)濟效益。目前,我們服務的客戶以成都為中心已經(jīng)輻射到陸良省份的部分城市,未來相信會繼續(xù)擴大服務區(qū)域并繼續(xù)獲得客戶的支持與信任!

一 nameserver  

相對來說,nameserver的穩(wěn)定性非常高。原因有二:

1 nameserver互相獨立,彼此沒有通信關系,單臺nameserver掛掉,不影響其他nameserver,即使全部掛掉,也不影響業(yè)務系統(tǒng)使用,這點類似于dubbo的zookeeper。

2 nameserver不會有頻繁的讀寫,所以性能開銷非常小,穩(wěn)定性很高。

二 broker  

1 與nameserver關系  

  • 連接

     單個broker和所有nameserver保持長連接

  • 心跳

     心跳間隔:每隔30秒(   此時間無法更改)向所有nameserver發(fā)送心跳,心跳包含了自身的topic配置信息。

     心跳超時:nameserver每隔10秒鐘(   此時間無法更改),掃描所有還存活的broker連接,若某個連接2分鐘內(   當前時間與最后更新時間差值超過2分鐘,此時間無法更改)沒有發(fā)送心跳數(shù)據(jù),則斷開連接。

  • 斷開

     時機:broker掛掉;心跳超時導致nameserver主動關閉連接

     動作:一旦連接斷開,nameserver會立即感知,更新topc與隊列的對應關系,但不會通知生產(chǎn)者和消費者

2 負載均衡  

  • 一個topic分布在多個broker上,一個broker可以配置多個topic,它們是多對多的關系。

  • 如果某個topic消息量很大,應該給它多配置幾個隊列,并且盡量多分布在不同broker上,減輕某個broker的壓力。

  • topic消息量都比較均勻的情況下,如果某個broker上的隊列越多,則該broker壓力越大。

3 可用性  

   由于消息分布在各個broker上,一旦某個broker宕機,則該broker上的消息讀寫都會受到影響。所以rocketmq提供了master/slave的結構,salve定時從master同步數(shù)據(jù),如果master宕機,則slave提供消費服務,但是不能寫入消息,此過程對應用透明,由rocketmq內部解決。  

這里有兩個關鍵點:  

  • 一旦某個broker master宕機,生產(chǎn)者和消費者多久才能發(fā)現(xiàn)?受限于rocketmq的網(wǎng)絡連接機制,默認情況下,最多需要30秒,但這個時間可由應用設定參數(shù)來縮短時間。這個時間段內,發(fā)往該broker的消息都是失敗的,而且該broker的消息無法消費,因為此時消費者不知道該broker已經(jīng)掛掉。

  • 消費者得到master宕機通知后,轉向slave消費,但是slave不能保證master的消息100%都同步過來了,因此會有少量的消息丟失。但是消息最終不會丟的,一旦master恢復,未同步過去的消息會被消費掉。

4 可靠性  

  • 所有發(fā)往broker的消息,有同步刷盤和異步刷盤機制,總的來說,可靠性非常高

  • 同步刷盤時,消息寫入物理文件才會返回成功,因此非??煽?/p>

  • 異步刷盤時,只有機器宕機,才會產(chǎn)生消息丟失,broker掛掉可能會發(fā)生,但是機器宕機崩潰是很少發(fā)生的,除非突然斷電

5 消息清理  

  • 掃描間隔

     默認10秒,由broker配置參數(shù)   cleanResourceInterval   決定  

  • 空間閾值

     物理文件不能無限制的一直存儲在磁盤,當磁盤空間達到閾值時,不再接受消息,broker打印出日志,消息發(fā)送失敗,閾值為固定值85%  

  • 清理時機

     默認每天凌晨4點,由broker配置參數(shù)   deleteWhen決定;或者磁盤空間達到閾值  

  • 文件保留時長

     默認72小時,由broker配置參數(shù)   fileReservedTime   決定  

6 讀寫性能  

  • 文件內存映射方式操作文件,避免read/write系統(tǒng)調用和實時文件讀寫,性能非常高

  • 永遠一個文件在寫,其他文件在讀

  • 順序寫,隨機讀

  • 利用linux的sendfile機制,將消息內容直接輸出到sokect管道,避免系統(tǒng)調用

7 系統(tǒng)特性  

  • 大內存,內存越大性能越高,否則系統(tǒng)swap會成為性能瓶頸

  • IO密集

  • cpu load高,使用率低,因為cpu占用后,大部分時間在IO WAIT

  • 磁盤可靠性要求高,為了兼顧安全和性能,采用RAID10陣列

  • 磁盤讀取速度要求快,要求高轉速大容量磁盤

三 消費者  

1 與nameserver關系  

  • 連接

     單個消費者和一臺nameserver保持長連接,定時查詢topic配置信息,如果該nameserver掛掉,消費者會自動連接下一個nameserver,直到有可用連接為止,并能自動重連。  

  • 心跳

與nameserver沒有心跳  

  • 輪詢時間

默認情況下,消費者每隔30秒從nameserver獲取所有topic的最新隊列情況,這意味著某個broker如果宕機,客戶端最多要30秒才能感知。該時間由       DefaultMQPushConsumer的       pollNameServerInteval參數(shù)決定,可手動配置。      

2 與broker關系  

  • 連接

單個消費者和該消費者關聯(lián)的所有broker保持長連接。  

  • 心跳

默認情況下,消費者每隔30秒向所有broker發(fā)送心跳, 該時間由 DefaultMQPushConsumer的 heartbeatBrokerInterval 參數(shù)決定,可手動配置。 broker每隔10秒鐘( 此時間無法更改 ),掃描所有還存活的連接,若某個連接2分鐘內( 當前時間與最后更新時間差值超過2分鐘,此時間無法更改 )沒有發(fā)送心跳數(shù)據(jù),則關閉連接, 并向該消費者分組的所有消費者發(fā)出通知,分組內消費者重新分配隊列繼續(xù)消費  

  • 斷開

時機:消費者掛掉;心跳超時導致broker主動關閉連接

動作:一旦連接斷開,broker會立即感知到,并向該消費者分組的所有消費者發(fā)出通知, 分組內消費者重新分配隊列繼續(xù)消費  

3 負載均衡  

集群消費模式下,一個消費者集群多臺機器共同消費一個topic的多個隊列,一個隊列只會被一個消費者消費。如果某個消費者掛掉,分組內其它消費者會接替掛掉的消費者繼續(xù)消費。

4 消費機制  

  • 本地隊列

        消費者不間斷的從broker拉取消息,消息拉取到本地隊列,然后本地消費線程消費本地消息隊列,只是一個異步過程,拉取線程不會等待本地消費線程,這種模式實時性非常高。對消費者對本地隊列有一個保護,因此本地消息隊列不能無限大,否則可能會占用大量內存,本地隊列大小由   DefaultMQPushConsumer的   pullThresholdForQueue屬性控制,默認1000,可手動設置   。  

  • 輪詢間隔

     消息拉取線程每隔多久拉取一次?間隔時間由   DefaultMQPushConsumer的   pullInterval   屬性控制,默認為0,可手動設置。  

  • 消息消費數(shù)量

     監(jiān)聽器每次接受本地隊列的消息是多少條?這個參數(shù)由   DefaultMQPushConsumer的   consumeMessageBatchMaxSize   屬性控制,默認為1,可手動設置。  

5 消費進度存儲  

     每隔一段時間將各個隊列的消費進度存儲到對應的broker上,該時間由   DefaultMQPushConsu   mer的   persistConsumerOffsetInterval屬性控制,默認為5秒,可手動設置。  

6 如果一個topic在某broker上有3個隊列,一個消費者消費這3個隊列,那么該消費者和這個broker有幾個連接?  

     一個連接,消費單位與隊列相關,消費連接只跟broker相關,事實上,消費者將所有隊列的消息拉取任務放到本地的隊列,挨個拉取,拉取完畢后,又將拉取任務放到隊尾,然后執(zhí)行下一個拉取任務  

四 生產(chǎn)者  

1 與nameserver關系  

  • 連接

     單個生產(chǎn)者者和一臺nameserver保持長連接,定時查詢topic配置信息,如果該nameserver掛掉,生產(chǎn)者會自動連接下一個nameserver,直到有可用連接為止,并能自動重連。  

  • 輪詢時間

默認情況下,生產(chǎn)者每隔30秒從nameserver獲取所有topic的最新隊列情況,這意味著某個broker如果宕機,生產(chǎn)者最多要30秒才能感知,在此期間,發(fā)往該broker的消息發(fā)送失敗。該時間由 DefaultMQProducer 的 pollNameServerInteval參數(shù)決定,可手動配置。  

  • 心跳

與nameserver沒有心跳  

   

2 與broker關系  

  • 連接

單個生產(chǎn)者和該生產(chǎn)者關聯(lián)的所有broker保持長連接。  

  • 心跳

默認情況下,生產(chǎn)者每隔30秒向所有broker發(fā)送心跳,該時間由 DefaultMQProducer 的 heartbeatBrokerInterval 參數(shù)決定,可手動配置。broker每隔10秒鐘( 此時間無法更改),掃描所有還存活的連接,若某個連接2分鐘內( 當前時間與最后更新時間差值超過2分鐘,此時間無法更改)沒有發(fā)送心跳數(shù)據(jù),則關閉連接。

  • 連接斷開

移除broker上的生產(chǎn)者信息  

   

3 負載均衡  

     生產(chǎn)者時間沒有關系,每個生產(chǎn)者向隊列輪流發(fā)送消息  

感謝你能夠認真閱讀完這篇文章,希望小編分享的“RocketMQ有哪些特性”這篇文章對大家有幫助,同時也希望大家多多支持創(chuàng)新互聯(lián),關注創(chuàng)新互聯(lián)行業(yè)資訊頻道,更多相關知識等著你來學習!

新聞標題:RocketMQ有哪些特性
標題URL:http://www.rwnh.cn/article20/pgseco.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供營銷型網(wǎng)站建設、網(wǎng)站營銷、網(wǎng)站收錄、定制開發(fā)、企業(yè)建站、品牌網(wǎng)站制作

廣告

聲明:本網(wǎng)站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站建設
玉山县| 同德县| 花莲市| 绥化市| 徐闻县| 奉化市| 晋城| 陆川县| 长乐市| 闽清县| 黔南| 崇义县| 泰安市| 汤原县| 西和县| 杭州市| 靖远县| 涟源市| 日喀则市| 剑川县| 黄浦区| 灵台县| 莱西市| 遵义县| 亳州市| 肥西县| 安远县| 西城区| 营山县| 班戈县| 保定市| 长岭县| 安平县| 米泉市| 克什克腾旗| 襄城县| 新源县| 顺义区| 洪湖市| 博兴县| 绥阳县|