MQ(RocketMQ)

一、RocketMQ概述

1.1)RocketMQ產(chǎn)生的原因

Kafka一個分區(qū)只能由消費組中一個消費者消費柴底,多出來的消費者也無法增加性能

1.2)RocketMQ如何支持多分區(qū)

Kafka直接訪問CommitLog婿脸,而RocketMQ先讀取ComsumeQueue中的Offset,隨機讀到Offset再去CommitLog中順序讀——缺點可能出現(xiàn)CommitLog中的消息對應(yīng)ComsumeQueue中沒有Offset

二柄驻、定義與概念

同步發(fā)送:發(fā)送后等待服務(wù)端給響應(yīng)發(fā)送成功之后信息才給用戶提示

異步發(fā)送:直接提示用戶已發(fā)送狐树,等到服務(wù)端響應(yīng)發(fā)送成功后再用回調(diào)函數(shù)處理

推動式消費:有一個進程執(zhí)行對RocketMQ拉取消息,再將消息發(fā)送給消費者鸿脓,在消費者眼中看不到進程以為是Broker推送的

Topic:比如同一份消息需要發(fā)送給PC抑钟,APP,站內(nèi)短信野哭,郵件在塔,針對不同渠道信息不同排版使用不同Topic進行隔離

Name Server:提供zookeeper一部分功能維護Broker列表,特色功能可通過名字找主題虐拓。相互獨立類似于Redis sentinel互相獨立相互監(jiān)視心俗,好處是權(quán)利平行解決不需要配置主從

Pull Comsumer:對應(yīng)消費端主動性高,不管生產(chǎn)端發(fā)送多少我根據(jù)自己能力消費

Push Comsumer:不在乎消費端有沒有消費完就主動推

Producer Group:提供備份防止一個Producer掛掉可以進行頂替

集群消費:相當于Kafka輪詢

廣播消費:消除了Kafka一個Partition只能被消費者組中一個消費者消費蓉驹,一個Partition可以被所有Comsumer全量接收

三、安裝 & 啟動

nohup不掛起運行揪利,客戶端終止服務(wù)端不停止運行态兴;&指后臺啟動
./tools.sh org.apache.rocketmq.example.quickstart.Producer

安裝RocketMQ Dashboard

四、基于rocketmq-client 項目實戰(zhàn)

單向消息應(yīng)用于對發(fā)送性能要求高疟位,但對數(shù)據(jù)完整性要求低場景
nohup ./mqbroker -c ../conf/broker.conf &
2PC強一致性:在所有分布式事務(wù)中一階段所有操作成功瞻润,TM二階段執(zhí)行提交,一階段有一個操作失敗甜刻,TM二階段將全部操作回滾
UNKNOWN狀態(tài)的消息會執(zhí)行checkLocalTransaction()方法
順序消費取余保證相同文件按順序存儲在同一個MessageQueue中

五绍撞、設(shè)計與架構(gòu)

5.1)Producer & Consumer

5.2)NameServer

5.3)BrokerServer

5.4)概念補充

UserProperties參考生產(chǎn)者SQL過濾代碼

5.5)消息存儲

maxOffset相當于Kafka中Log End Offset

5.6)頁緩存與內(nèi)存映射

頁緩存
內(nèi)存映射

微服務(wù)比較火因分為兩部分,不同服務(wù)配置不同性能的機器得院,一個服務(wù)又要高CPU又要大磁盤拆不開:

計算型:采用高CPU傻铣,高內(nèi)存

IO型:大內(nèi)存,SSD大磁盤

5.7)消息刷盤

同步保證數(shù)據(jù)正確性(銀行沒有容錯率)祥绞,異步加快執(zhí)行效率(出錯概率低)

5.8)高可用性

主從集群
主從復(fù)制

5.9)負載均衡

5.9.1)Producer端

setLatencyFaultEnable開啟會將Broker進行排序非洲,latency時間越短Broker越排前

5.9.2)Consumer端概述

ConsumerManager保存所有消費者列表鸭限,channelInfoTable

5.9.3)Consumer端集群模式

5.10)消息重試

Message ID代表消息的唯一性

5.11)死信隊列

有點像垃圾回收站
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市两踏,隨后出現(xiàn)的幾起案子败京,更是在濱河造成了極大的恐慌,老刑警劉巖梦染,帶你破解...
    沈念sama閱讀 222,464評論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件赡麦,死亡現(xiàn)場離奇詭異,居然都是意外死亡帕识,警方通過查閱死者的電腦和手機泛粹,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,033評論 3 399
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來渡冻,“玉大人戚扳,你說我怎么就攤上這事∽逦牵” “怎么了帽借?”我有些...
    開封第一講書人閱讀 169,078評論 0 362
  • 文/不壞的土叔 我叫張陵,是天一觀的道長超歌。 經(jīng)常有香客問我砍艾,道長,這世上最難降的妖魔是什么巍举? 我笑而不...
    開封第一講書人閱讀 59,979評論 1 299
  • 正文 為了忘掉前任脆荷,我火速辦了婚禮,結(jié)果婚禮上懊悯,老公的妹妹穿的比我還像新娘蜓谋。我一直安慰自己,他們只是感情好炭分,可當我...
    茶點故事閱讀 69,001評論 6 398
  • 文/花漫 我一把揭開白布桃焕。 她就那樣靜靜地躺著,像睡著了一般捧毛。 火紅的嫁衣襯著肌膚如雪观堂。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,584評論 1 312
  • 那天呀忧,我揣著相機與錄音师痕,去河邊找鬼。 笑死而账,一個胖子當著我的面吹牛胰坟,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播福扬,決...
    沈念sama閱讀 41,085評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼腕铸,長吁一口氣:“原來是場噩夢啊……” “哼惜犀!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起狠裹,我...
    開封第一講書人閱讀 40,023評論 0 277
  • 序言:老撾萬榮一對情侶失蹤虽界,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后涛菠,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體莉御,經(jīng)...
    沈念sama閱讀 46,555評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,626評論 3 342
  • 正文 我和宋清朗相戀三年俗冻,在試婚紗的時候發(fā)現(xiàn)自己被綠了礁叔。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,769評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡迄薄,死狀恐怖琅关,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情讥蔽,我是刑警寧澤涣易,帶...
    沈念sama閱讀 36,439評論 5 351
  • 正文 年R本政府宣布,位于F島的核電站冶伞,受9級特大地震影響新症,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜响禽,卻給世界環(huán)境...
    茶點故事閱讀 42,115評論 3 335
  • 文/蒙蒙 一徒爹、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧芋类,春花似錦隆嗅、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,601評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至巫击,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間精续,已是汗流浹背坝锰。 一陣腳步聲響...
    開封第一講書人閱讀 33,702評論 1 274
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留重付,地道東北人顷级。 一個月前我還...
    沈念sama閱讀 49,191評論 3 378
  • 正文 我出身青樓,卻偏偏與公主長得像确垫,于是被迫代替她去往敵國和親弓颈。 傳聞我的和親對象是個殘疾皇子帽芽,可洞房花燭夜當晚...
    茶點故事閱讀 45,781評論 2 361

推薦閱讀更多精彩內(nèi)容