欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

RocketMQ簡(jiǎn)單介紹指的是什么

RocketMQ簡(jiǎn)單介紹指的是什么,相信很多沒有經(jīng)驗(yàn)的人對(duì)此束手無策,為此本文總結(jié)了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個(gè)問題。

創(chuàng)新互聯(lián)建站成立于2013年,我們提供高端成都網(wǎng)站建設(shè)網(wǎng)站制作公司成都網(wǎng)站設(shè)計(jì)、網(wǎng)站定制、網(wǎng)絡(luò)營銷推廣微信小程序、微信公眾號(hào)開發(fā)、營銷推廣服務(wù),提供專業(yè)營銷思路、內(nèi)容策劃、視覺設(shè)計(jì)、程序開發(fā)來完成項(xiàng)目落地,為混凝土攪拌罐車企業(yè)提供源源不斷的流量和訂單咨詢。

一、簡(jiǎn)介

RocketMQ是阿里開源的一款分布式消息中間件,滿足線上海量消息堆積的需求, 在2016年底捐贈(zèng)給Apache開源基金會(huì)成為孵化項(xiàng)目,2017年正式成為了Apache頂級(jí)項(xiàng)目。是一款純Java的消息中間件,可靠性、低延遲、可擴(kuò)展、易于使用的特性而著稱。

1、背景介紹

阿里早期也是基于ActiveMQ 5.x的分布式消息中間件來構(gòu)建其消息中間件,但是隨著主題和隊(duì)列的增加慢慢的發(fā)現(xiàn)ActiveMQ IO模塊遇到了瓶頸。我們盡力通過節(jié)流,斷路器或降級(jí)解決這個(gè)問題,但效果不佳。因此,我們開始關(guān)注當(dāng)時(shí)流行的消息傳遞解決方案Kafka。不幸的是,Kafka無法滿足我們的要求,特別是在低延遲和高可靠性方面。Kafka是一個(gè)分布式流媒體平臺(tái),它源于日志聚合案例。它不需要太高的并發(fā)性。在阿里巴巴的一些大型案例中,我們發(fā)現(xiàn)原始模型無法滿足我們的實(shí)際需求。

RocketMQ起源于最開始阿里的Metaq( Metamorphosis) 經(jīng)歷過Metaq 1.x、Metaq 2.x、RocketMQ3.x在其3.0版本的時(shí)候更名為RocketMQ,目前最新版本為RocketMQ4.5.x。

2、使用場(chǎng)景

與其說是RocketMQ的使用場(chǎng)景,不如說是MQ(消息隊(duì)列)的使用場(chǎng)景,MQ的產(chǎn)品比較多目前比較流行的有ActiveMQ,RabbitMQ,ZeroMQ,Kafka,MetaMQ,RocketMQ等

MQ 可應(yīng)用在多個(gè)領(lǐng)域,包括異步通信解耦、企業(yè)解決方案、金融支付、電信、電子商務(wù)、快遞物流、廣告營銷、社交、即時(shí)通信、手游、視頻、物聯(lián)網(wǎng)、車聯(lián)網(wǎng)等。

下面列舉了一些常用的場(chǎng)景:

  • 一對(duì)多,多對(duì)多異步解耦,基于發(fā)布訂閱模型,對(duì)分布式應(yīng)用進(jìn)行異步解耦,增加應(yīng)用的水平擴(kuò)展能力。

  • 削峰填谷,大促等流量洪流突然來襲時(shí),MQ 可以緩沖突發(fā)流量,避免下游訂閱系統(tǒng)因突發(fā)流量崩潰。

  • 日志監(jiān)控,作為重要日志的監(jiān)控通信管道,將應(yīng)用日志監(jiān)控對(duì)系統(tǒng)性能影響降到最低。

  • 消息推送,為社交應(yīng)用和物聯(lián)網(wǎng)應(yīng)用提供點(diǎn)對(duì)點(diǎn)推送,一對(duì)多廣播式推送的能力。

  • 金融報(bào)文,發(fā)送金融報(bào)文,實(shí)現(xiàn)金融準(zhǔn)實(shí)時(shí)的報(bào)文傳輸,可靠安全。

  • 電信信令,將電信信令封裝成消息,傳遞到各個(gè)控制終端,實(shí)現(xiàn)準(zhǔn)實(shí)時(shí)控制和信息傳遞

3、主流MQ比較

主流的MQ的對(duì)比RocketMQ 、 ActiveMQ 、 Kafka

消息產(chǎn)品客戶端SDK協(xié)議和規(guī)范消息存儲(chǔ)服務(wù)器觸發(fā)重新傳遞廣播消息高可用性和故障轉(zhuǎn)移消息跟蹤
ActiveMQJava,.NET,C ++等推模型,支持OpenWire,STOMP,AMQP,MQTT,JMS使用JDBC和高性能日志(如levelDB,kahaDB)支持非常快速的持久性不支持支持支持,根據(jù)存儲(chǔ),如果使用kahadb,則需要ZooKeeper服務(wù)器不支持
KafkaJava,Scala等拉模型,支持TCP高性能文件存儲(chǔ)不支持不支持支持,需要ZooKeeper服務(wù)器不支持
RocketMQJava,C ++,Go拉模型,支持TCP,JMS,OpenMessaging高性能和低延遲的文件存儲(chǔ)支持支持支持的Master-Slave模型,沒有其他套件支持

二、概況

1、RocketMQ集群部署結(jié)構(gòu)

RocketMQ簡(jiǎn)單介紹指的是什么

Name Server

Name Server是一個(gè)幾乎無狀態(tài)節(jié)點(diǎn),可集群部署,節(jié)點(diǎn)之間無任何信息同步。

Broker

Broker部署相對(duì)復(fù)雜,Broker分為Master與Slave,一個(gè)Master可以對(duì)應(yīng)多個(gè)Slave,但是一個(gè)Slave只能對(duì)應(yīng)一個(gè)Master,Master與Slave的對(duì)應(yīng)關(guān)系通過指定相同的Broker Name,不同的Broker Id來定義,BrokerId為0表示Master,非0表示Slave。Master也可以部署多個(gè)。

每個(gè)Broker與Name Server集群中的所有節(jié)點(diǎn)建立長連接,定時(shí)(每隔30s)注冊(cè)Topic信息到所有Name Server。Name Server定時(shí)(每隔10s)掃描所有存活broker的連接,如果Name Server超過2分鐘沒有收到心跳,則Name Server斷開與Broker的連接。

Producer

Producer與Name Server集群中的其中一個(gè)節(jié)點(diǎn)(隨機(jī)選擇)建立長連接,定期從Name Server取Topic路由信息,并向提供Topic服務(wù)的Master建立長連接,且定時(shí)向Master發(fā)送心跳。Producer完全無狀態(tài),可集群部署。

Producer每隔30s(由ClientConfig的pollNameServerInterval)從Name server獲取所有topic隊(duì)列的最新情況,這意味著如果Broker不可用,Producer最多30s能夠感知,在此期間內(nèi)發(fā)往Broker的所有消息都會(huì)失敗。

Producer每隔30s(由ClientConfig中heartbeatBrokerInterval決定)向所有關(guān)聯(lián)的broker發(fā)送心跳,Broker每隔10s中掃描所有存活的連接,如果Broker在2分鐘內(nèi)沒有收到心跳數(shù)據(jù),則關(guān)閉與Producer的連接。

Consumer

Consumer與Name Server集群中的其中一個(gè)節(jié)點(diǎn)(隨機(jī)選擇)建立長連接,定期從Name Server取Topic路由信息,并向提供Topic服務(wù)的Master、Slave建立長連接,且定時(shí)向Master、Slave發(fā)送心跳。Consumer既可以從Master訂閱消息,也可以從Slave訂閱消息,訂閱規(guī)則由Broker配置決定。

Consumer每隔30s從Name server獲取topic的最新隊(duì)列情況,這意味著Broker不可用時(shí),Consumer最多最需要30s才能感知。

Consumer每隔30s(由ClientConfig中heartbeatBrokerInterval決定)向所有關(guān)聯(lián)的broker發(fā)送心跳,Broker每隔10s掃描所有存活的連接,若某個(gè)連接2分鐘內(nèi)沒有發(fā)送心跳數(shù)據(jù),則關(guān)閉連接;并向該Consumer Group的所有Consumer發(fā)出通知,Group內(nèi)的Consumer重新分配隊(duì)列,然后繼續(xù)消費(fèi)。

當(dāng)Consumer得到master宕機(jī)通知后,轉(zhuǎn)向slave消費(fèi),slave不能保證master的消息100%都同步過來了,因此會(huì)有少量的消息丟失。但是一旦master恢復(fù),未同步過去的消息會(huì)被最終消費(fèi)掉。

2、消息發(fā)送類型

1)同步消息(可靠)

同步發(fā)送,線程阻塞,投遞completes阻塞結(jié)束

如果發(fā)送失敗,會(huì)在默認(rèn)的超時(shí)時(shí)間3秒內(nèi)進(jìn)行重試,最多重試2次

投遞completes不代表投遞成功,要check SendResult.sendStatus來判斷是否投遞成功

2)異步消息(可靠)

發(fā)送異步消息需要指定消息發(fā)送成功后的回調(diào)函數(shù),調(diào)用發(fā)送消息的API會(huì)立刻返回,消息發(fā)送者的線程不阻 塞,直到運(yùn)行結(jié)束,消息發(fā)送成功或者失敗的回調(diào)任務(wù)在新的線程中執(zhí)行。

3)單向消息(不可靠)

消息不可靠,性能高,只負(fù)責(zé)往服務(wù)器發(fā)送一條消息,不會(huì)重試也不關(guān)心是否發(fā)送成功

此方式發(fā)送消息的過程耗時(shí)非常短,一般在微秒級(jí)別

3、消費(fèi)模式(集群/廣播)

RocketMQ物理部署圖:

RocketMQ簡(jiǎn)單介紹指的是什么

術(shù)語解釋

消息主題(Topic)

Topic是生產(chǎn)者在發(fā)送消息和消費(fèi)者在拉取消息的類別。Topic與生產(chǎn)者和消費(fèi)者之間的關(guān)系非常松散。具體來說,一個(gè)Topic可能有0個(gè),一個(gè)或多個(gè)生產(chǎn)者向它發(fā)送消息;相反,一個(gè)生產(chǎn)者可以發(fā)送不同類型Topic的消息。類似的,消費(fèi)者組可以訂閱一個(gè)或多個(gè)主題,只要該組的實(shí)例保持其訂閱一致即可。

一個(gè)主題對(duì)應(yīng)多個(gè)隊(duì)列(默認(rèn)4個(gè))

消息是存儲(chǔ)在不同的隊(duì)列中

消費(fèi)組(ConsumerGroup)

一類 Consumer 的集合名稱,組內(nèi)的 Consumer 通常消費(fèi)一類消息,消費(fèi)消息邏輯一致。

一個(gè)consumerGroup只對(duì)應(yīng)一個(gè)topic

同一個(gè)ConsumerGroup中的消費(fèi)者訂閱的主題(Topic)和標(biāo)簽(Tag)必須一致(集群模式下消費(fèi)會(huì)有問題)

一個(gè)消息隊(duì)列只會(huì)對(duì)應(yīng)一個(gè)消費(fèi)者

生產(chǎn)組(ProducerGroup)

一類 Producer 的集合名稱,組內(nèi)的 Producer 通常發(fā)送一類消息,發(fā)送消息邏輯一致

1)廣播模式

一條消息被多個(gè)consumer消費(fèi),即使這些consumer屬于同一個(gè)ConsumerGroup,消息也會(huì)被ConsumerGroup中的每個(gè)Consumer都消費(fèi)一次,廣播消費(fèi)中ConsumerGroup概念可以認(rèn)為在消息劃分方面無意義。

2)集群模式(默認(rèn))

一個(gè)ConsumerGroup中的Consumer實(shí)例平均分?jǐn)傁M(fèi)消息。例如某個(gè)Topic有9條消息,其中一個(gè)ConsumerGroup有3個(gè)實(shí)例(可能是3個(gè)進(jìn)程,或者3臺(tái)機(jī)器),那么每個(gè)實(shí)例只消費(fèi)其中部分,消費(fèi)完的消息不能被其他實(shí)例消費(fèi)。

看完上述內(nèi)容,你們掌握RocketMQ簡(jiǎn)單介紹指的是什么的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!

網(wǎng)頁名稱:RocketMQ簡(jiǎn)單介紹指的是什么
標(biāo)題鏈接:http://www.chinadenli.net/article26/gpcjcg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供外貿(mào)網(wǎng)站建設(shè)域名注冊(cè)企業(yè)網(wǎng)站制作關(guān)鍵詞優(yōu)化Google微信小程序

廣告

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

綿陽服務(wù)器托管