RabbitMQ翅娶,消息中間件基礎(chǔ)當(dāng)中的AMQP協(xié)議

知識(shí)要點(diǎn):

什么是消息中間件
消息中間件的作用
消息中間件歷史
JMS規(guī)范
AMQP協(xié)議

消息隊(duì)列中間件(Message Queue Middleware,簡(jiǎn)稱(chēng)為MQ)是指利用高效可靠的消息傳遞機(jī)制進(jìn)行與平臺(tái)無(wú)關(guān)的數(shù)據(jù)交流申尼,并基于數(shù)據(jù)通信來(lái)進(jìn)行分布式系統(tǒng)的集成蓬蝶。通過(guò)提供消息傳遞和消息排隊(duì)模型螺戳,它可以在分布式環(huán)境下擴(kuò)展進(jìn)程間的通信踏堡。
目前開(kāi)源的消息中間件有很多,比較主流的有RabbitMQ恒水、Kafka会放、 ActiveMQ、 RocketMQ等钉凌。 面向消息的中間件(簡(jiǎn)稱(chēng)為MOM, Message Oriented Middleware)提供了以松散藕合的靈活方式集成應(yīng)用程序的一種機(jī)制咧最。它們提供了基于存儲(chǔ)和轉(zhuǎn)發(fā)的應(yīng)用程序之間的異步數(shù)據(jù)發(fā)送,即應(yīng)用程序彼此不直接通信,而是與作為中介的消息中間件通信御雕。消息中間件提供了有保證的消息發(fā)送矢沿,應(yīng)用程序開(kāi)發(fā)人員無(wú)須了解
遠(yuǎn)程過(guò)程調(diào)用( RPC)和網(wǎng)絡(luò)通信協(xié)議的細(xì)節(jié)。


消息中間件的作用

步, (解決不必要的阻塞) : 消息中間件提供了異步處理機(jī)制酸纲,允許應(yīng)用把一些消息放入消息中間件中捣鲸,但并不立即處理它,在之后需要的時(shí)候再慢慢處理闽坡。
解耦(降低模塊間的耦合關(guān)系) :消息中間件在處理過(guò)程中間插入了一個(gè)隱含的摄狱、基于數(shù)據(jù)的接口層脓诡。
削峰(峰值任務(wù)的平滑處理) :在訪問(wèn)量劇增的情況下,應(yīng)用仍然需要繼續(xù)發(fā)揮作用媒役。
冗余(存儲(chǔ)、補(bǔ)償機(jī)制) :有些情況下宪迟,處理數(shù)據(jù)的過(guò)程會(huì)失敗酣衷。消息中間件可以把數(shù)據(jù)進(jìn)行持久化直到
它們已經(jīng)被完全處理,通過(guò)這- -方式規(guī)避了數(shù)據(jù)丟失風(fēng)險(xiǎn)次泽。
注意:
分布式消息傳遞:中間件可用性(高可用)穿仪、可靠性 (消息在傳遞過(guò)程中不會(huì)丟失)、持久化 (消息在存儲(chǔ)過(guò)程中不丟失)意荤、吞吐量啊片、 響應(yīng)時(shí)間、跨平臺(tái)玖像。

消息中間件的歷史

最早的消息中間件概念誕生是非常早的紫谷,在1983年, -個(gè)印度人提出了一個(gè)設(shè)想捐寥,設(shè)計(jì)-種軟件總線(xiàn)笤昨,提供其他程序接入,以發(fā)布訂閱的模式。后來(lái)成了TIB握恳。
IBM——> WebSphere MQ
微軟一一> MSMQ
JMS (Java Message Service)規(guī)范瞒窒,由sun公司于2001年發(fā)布, 封裝了各大廠商的消息中間件服務(wù)乡洼,提供了Java的APl崇裁。那么Java程序員就只需要面向API編程,不需要關(guān)注到底用了什么消息中間件AMQP (Advanced Message Queuing Protocol)協(xié)議束昵,2004年誕生拔稳。

JMS規(guī)范(Message Serice)

JMS (Java Message Service)規(guī)范本質(zhì)上是一套API,只適用于Java平臺(tái)的消息中間件規(guī)范妻怎,支持Java應(yīng)用程序之間進(jìn)行消息交換壳炎。并且通過(guò)提供標(biāo)準(zhǔn)的生產(chǎn)、發(fā)送逼侦、接收消息的接口簡(jiǎn)化企業(yè)應(yīng)用的開(kāi)發(fā)匿辩。


JMS對(duì)象模型包含的元素:

1、連接工廠:用于創(chuàng)建一 個(gè)JMS連接
2榛丢、JMS連接:客戶(hù)端和服務(wù)器之間的一個(gè)連接
3铲球、JMS會(huì)話(huà):客戶(hù)端和服務(wù)器端會(huì)話(huà)的狀態(tài),建立在連接之上的
4晰赞、JMS目的:消息隊(duì)列稼病,就是消息的目的地
5选侨、JMS生產(chǎn)者:生成消息
6、JMS消費(fèi)者:接收消息
7然走、Broker: 消息中間件實(shí)例

JMS消息模型

1援制、 Point-to-Point (點(diǎn)對(duì)點(diǎn))
特點(diǎn):一個(gè)消息只有一個(gè)消費(fèi)者拿到,該消息就從消息隊(duì)列中刪除芍瑞。成功拿到消息后會(huì)向隊(duì)列應(yīng)答成功晨仑,確認(rèn)接收。


2拆檬、publis/sbscribe(發(fā)布/訂閱)
訂閱者消費(fèi)特點(diǎn):
發(fā)布到Topic的消息會(huì)被當(dāng)前主題所有的訂閱者消息

AMQP協(xié)議

AMQP (Advanced Message Queuing Protocol)協(xié)議是一開(kāi)放標(biāo)準(zhǔn)洪己,支持不同語(yǔ)言的不同產(chǎn)品。


AMQP組件

生產(chǎn)者:消息的創(chuàng)建者,將消息發(fā)送到消息中間件
消費(fèi)者:連接到消息中間件上竟贯,訂閱在隊(duì)列上答捕,進(jìn)行消息的消費(fèi)。
消息:包括有效載荷與標(biāo)簽屑那。有效載荷:要傳輸?shù)臄?shù)據(jù);標(biāo)簽:描述有效載荷的屬性: RabbitMQ通過(guò)標(biāo)簽決定誰(shuí)獲得該消息拱镐,消費(fèi)者只能得到有效載荷。
信道:可理解為一個(gè)虛擬的連接齐莲,建立在真實(shí)的TCP/IP連接之上痢站。所有AMQP上的消啟都通過(guò)信道傳輸,TCP/IP連接的建立和釋放對(duì)服務(wù)器有很大的消耗选酗、昂貴的資源阵难。信道的創(chuàng)建沒(méi)有數(shù)量限制,保護(hù)資源的利用芒填。
交換器呜叫、隊(duì)列、綁定殿衰、路由鍵:隊(duì)列通過(guò)路由鍵(routing key)綁定到交換器朱庆,生產(chǎn)者把消息發(fā)送到交換器,交換器根據(jù)綁定的路由鍵把消息路由到特定的隊(duì)列中闷祥,再由訂閱該隊(duì)列的消費(fèi)者進(jìn)行消息的消費(fèi)娱颊。


注意:
一個(gè)連接有多個(gè)信道?可以信道是連接在Broker (MQ服務(wù)器)上交換器和信道無(wú)關(guān)

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市凯砍,隨后出現(xiàn)的幾起案子箱硕,更是在濱河造成了極大的恐慌,老刑警劉巖悟衩,帶你破解...
    沈念sama閱讀 216,372評(píng)論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件剧罩,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡座泳,警方通過(guò)查閱死者的電腦和手機(jī)惠昔,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,368評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門(mén)幕与,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人镇防,你說(shuō)我怎么就攤上這事啦鸣。” “怎么了来氧?”我有些...
    開(kāi)封第一講書(shū)人閱讀 162,415評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵赏陵,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我饲漾,道長(zhǎng),這世上最難降的妖魔是什么缕溉? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,157評(píng)論 1 292
  • 正文 為了忘掉前任考传,我火速辦了婚禮,結(jié)果婚禮上证鸥,老公的妹妹穿的比我還像新娘僚楞。我一直安慰自己,他們只是感情好枉层,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,171評(píng)論 6 388
  • 文/花漫 我一把揭開(kāi)白布泉褐。 她就那樣靜靜地躺著,像睡著了一般鸟蜡。 火紅的嫁衣襯著肌膚如雪膜赃。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 51,125評(píng)論 1 297
  • 那天揉忘,我揣著相機(jī)與錄音跳座,去河邊找鬼。 笑死泣矛,一個(gè)胖子當(dāng)著我的面吹牛疲眷,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播您朽,決...
    沈念sama閱讀 40,028評(píng)論 3 417
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼狂丝,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了哗总?” 一聲冷哼從身側(cè)響起几颜,我...
    開(kāi)封第一講書(shū)人閱讀 38,887評(píng)論 0 274
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎魂奥,沒(méi)想到半個(gè)月后菠剩,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,310評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡耻煤,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,533評(píng)論 2 332
  • 正文 我和宋清朗相戀三年具壮,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了准颓。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,690評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡棺妓,死狀恐怖攘已,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情怜跑,我是刑警寧澤样勃,帶...
    沈念sama閱讀 35,411評(píng)論 5 343
  • 正文 年R本政府宣布,位于F島的核電站性芬,受9級(jí)特大地震影響峡眶,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜植锉,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,004評(píng)論 3 325
  • 文/蒙蒙 一辫樱、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧俊庇,春花似錦狮暑、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,659評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至彭沼,卻和暖如春缔逛,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背溜腐。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,812評(píng)論 1 268
  • 我被黑心中介騙來(lái)泰國(guó)打工译株, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人挺益。 一個(gè)月前我還...
    沈念sama閱讀 47,693評(píng)論 2 368
  • 正文 我出身青樓歉糜,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親望众。 傳聞我的和親對(duì)象是個(gè)殘疾皇子匪补,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,577評(píng)論 2 353

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