資料介紹
1. 消息隊(duì)列的歷史
了解一件事情的來龍去脈,將不會對它感到神秘。讓我們來看看消息隊(duì)列(Message Queue)這項(xiàng)技術(shù)的發(fā)展歷史。
Message Queue的需求由來已久,80年代最早在金融交易中,高盛等公司采用Teknekron公司的產(chǎn)品,當(dāng)時(shí)的Message queuing軟件叫做:the information bus(TIB)。 TIB被電信和通訊公司采用,路透社收購了Teknekron公司。之后,IBM開發(fā)了MQSeries,微軟開發(fā)了Microsoft Message Queue(MSMQ)。這些商業(yè)MQ供應(yīng)商的問題是廠商鎖定,價(jià)格高昂。2001年,Java Message queuing試圖解決鎖定和交互性的問題,但對應(yīng)用來說反而更加麻煩了。
于是2004年,摩根大通和iMatrix開始著手Advanced Message Queuing Protocol (AMQP)開放標(biāo)準(zhǔn)的開發(fā)。2006年,AMQP規(guī)范發(fā)布。2007年,Rabbit技術(shù)公司基于AMQP標(biāo)準(zhǔn)開發(fā)的RabbitMQ 1.0 發(fā)布。
目前RabbitMQ的最新版本為3.5.7,基于AMQP 0-9-1。
RabbitMQ采用Erlang語言開發(fā)。Erlang語言由Ericson設(shè)計(jì),專門為開發(fā)concurrent和distribution系統(tǒng)的一種語言,在電信領(lǐng)域使用廣泛。OTP(Open Telecom Platform)作為Erlang語言的一部分,包含了很多基于Erlang開發(fā)的中間件/庫/工具,如mnesia/SASL,極大方便了Erlang應(yīng)用的開發(fā)。OTP就類似于Python語言中眾多的module,用戶借助這些module可以很方便的開發(fā)應(yīng)用。
2. AMQP messaging 中的基本概念
Broker: 接收和分發(fā)消息的應(yīng)用,RabbitMQ Server就是Message Broker。
Virtual host: 出于多租戶和安全因素設(shè)計(jì)的,把AMQP的基本組件劃分到一個(gè)虛擬的分組中,類似于網(wǎng)絡(luò)中的namespace概念。當(dāng)多個(gè)不同的用戶使用同一個(gè)RabbitMQ server提供的服務(wù)時(shí),可以劃分出多個(gè)vhost,每個(gè)用戶在自己的vhost創(chuàng)建exchange/queue等。
Connection: publisher/consumer和broker之間的TCP連接。斷開連接的操作只會在client端進(jìn)行,Broker不會斷開連接,除非出現(xiàn)網(wǎng)絡(luò)故障或broker服務(wù)出現(xiàn)問題。
Channel: 如果每一次訪問RabbitMQ都建立一個(gè)Connection,在消息量大的時(shí)候建立TCP Connection的開銷將是巨大的,效率也較低。Channel是在connection內(nèi)部建立的邏輯連接,如果應(yīng)用程序支持多線程,通常每個(gè)thread創(chuàng)建單獨(dú)的channel進(jìn)行通訊,AMQP method包含了channel id幫助客戶端和message broker識別channel,所以channel之間是完全隔離的。Channel作為輕量級的Connection極大減少了操作系統(tǒng)建立TCP connection的開銷。
Exchange: message到達(dá)broker的第一站,根據(jù)分發(fā)規(guī)則,匹配查詢表中的routing key,分發(fā)消息到queue中去。常用的類型有:direct (point-to-point), topic (publish-subscribe) and fanout (multicast)。
Queue: 消息最終被送到這里等待consumer取走。一個(gè)message可以被同時(shí)拷貝到多個(gè)queue中。
Binding: exchange和queue之間的虛擬連接,binding中可以包含routing key。Binding信息被保存到exchange中的查詢表中,用于message的分發(fā)依據(jù)。
3. 典型的“生產(chǎn)/消費(fèi)”消息模型
了解一件事情的來龍去脈,將不會對它感到神秘。讓我們來看看消息隊(duì)列(Message Queue)這項(xiàng)技術(shù)的發(fā)展歷史。
Message Queue的需求由來已久,80年代最早在金融交易中,高盛等公司采用Teknekron公司的產(chǎn)品,當(dāng)時(shí)的Message queuing軟件叫做:the information bus(TIB)。 TIB被電信和通訊公司采用,路透社收購了Teknekron公司。之后,IBM開發(fā)了MQSeries,微軟開發(fā)了Microsoft Message Queue(MSMQ)。這些商業(yè)MQ供應(yīng)商的問題是廠商鎖定,價(jià)格高昂。2001年,Java Message queuing試圖解決鎖定和交互性的問題,但對應(yīng)用來說反而更加麻煩了。
于是2004年,摩根大通和iMatrix開始著手Advanced Message Queuing Protocol (AMQP)開放標(biāo)準(zhǔn)的開發(fā)。2006年,AMQP規(guī)范發(fā)布。2007年,Rabbit技術(shù)公司基于AMQP標(biāo)準(zhǔn)開發(fā)的RabbitMQ 1.0 發(fā)布。
目前RabbitMQ的最新版本為3.5.7,基于AMQP 0-9-1。
RabbitMQ采用Erlang語言開發(fā)。Erlang語言由Ericson設(shè)計(jì),專門為開發(fā)concurrent和distribution系統(tǒng)的一種語言,在電信領(lǐng)域使用廣泛。OTP(Open Telecom Platform)作為Erlang語言的一部分,包含了很多基于Erlang開發(fā)的中間件/庫/工具,如mnesia/SASL,極大方便了Erlang應(yīng)用的開發(fā)。OTP就類似于Python語言中眾多的module,用戶借助這些module可以很方便的開發(fā)應(yīng)用。
2. AMQP messaging 中的基本概念
Broker: 接收和分發(fā)消息的應(yīng)用,RabbitMQ Server就是Message Broker。
Virtual host: 出于多租戶和安全因素設(shè)計(jì)的,把AMQP的基本組件劃分到一個(gè)虛擬的分組中,類似于網(wǎng)絡(luò)中的namespace概念。當(dāng)多個(gè)不同的用戶使用同一個(gè)RabbitMQ server提供的服務(wù)時(shí),可以劃分出多個(gè)vhost,每個(gè)用戶在自己的vhost創(chuàng)建exchange/queue等。
Connection: publisher/consumer和broker之間的TCP連接。斷開連接的操作只會在client端進(jìn)行,Broker不會斷開連接,除非出現(xiàn)網(wǎng)絡(luò)故障或broker服務(wù)出現(xiàn)問題。
Channel: 如果每一次訪問RabbitMQ都建立一個(gè)Connection,在消息量大的時(shí)候建立TCP Connection的開銷將是巨大的,效率也較低。Channel是在connection內(nèi)部建立的邏輯連接,如果應(yīng)用程序支持多線程,通常每個(gè)thread創(chuàng)建單獨(dú)的channel進(jìn)行通訊,AMQP method包含了channel id幫助客戶端和message broker識別channel,所以channel之間是完全隔離的。Channel作為輕量級的Connection極大減少了操作系統(tǒng)建立TCP connection的開銷。
Exchange: message到達(dá)broker的第一站,根據(jù)分發(fā)規(guī)則,匹配查詢表中的routing key,分發(fā)消息到queue中去。常用的類型有:direct (point-to-point), topic (publish-subscribe) and fanout (multicast)。
Queue: 消息最終被送到這里等待consumer取走。一個(gè)message可以被同時(shí)拷貝到多個(gè)queue中。
Binding: exchange和queue之間的虛擬連接,binding中可以包含routing key。Binding信息被保存到exchange中的查詢表中,用于message的分發(fā)依據(jù)。
3. 典型的“生產(chǎn)/消費(fèi)”消息模型
下載該資料的人也在下載
下載該資料的人還在閱讀
更多 >
- RabbitMQ:消息傳遞的中介
- RabbitMQ-CN RabbitMQ中文文檔
- LLC拓?fù)?b class="flag-6" style="color: red">詳細(xì)解析資料下載 81次下載
- EDID詳細(xì)解析資料匯總 22次下載
- 汽車常用ISO15765協(xié)議解析 33次下載
- 網(wǎng)絡(luò)存儲技術(shù)的存儲協(xié)議詳細(xì)說明 15次下載
- 射頻模塊RS485接口通信協(xié)議規(guī)范的詳細(xì)資料概述 20次下載
- 51單片機(jī)點(diǎn)陣代碼和詳細(xì)解析資料免費(fèi)下載
- 如何深度解析C++拷貝構(gòu)造函數(shù)詳細(xì)資料說明
- LTE終端測試規(guī)范36.521測試項(xiàng)的詳細(xì)資料解析 72次下載
- 物聯(lián)網(wǎng)教程之ZStack無線協(xié)議棧的詳細(xì)資料概述 16次下載
- Modbus串行通信協(xié)議的3個(gè)運(yùn)用的程序 29次下載
- Microchip的TCP和IP協(xié)議棧的詳細(xì)中文資料免費(fèi)下載
- 西門子PPI協(xié)議解析資料下載 46次下載
- 信噪比與噪聲的詳細(xì)解析 12次下載
- 基于Docker Compose部署RabbitMQ的經(jīng)驗(yàn)分享 1406次閱讀
- RabbitMq入門教程 390次閱讀
- eSPI協(xié)議抓包分析 2570次閱讀
- TCP協(xié)議詳細(xì)解析 3532次閱讀
- TCP/IP協(xié)議和OPC協(xié)議的區(qū)別 3887次閱讀
- RabbitMQ是什么 742次閱讀
- RabbitMQ通信模型中的work模型 436次閱讀
- RabbitMQ中的發(fā)布訂閱模型 437次閱讀
- RabbitMQ中的路由模型(direct) 394次閱讀
- ARP協(xié)議原理是什么 2108次閱讀
- 固態(tài)鋰離子電池的詳細(xì)資料解析 8650次閱讀
- ARP是什么意思?ARP是什么協(xié)議?ARP協(xié)議用于什么地方 1.8w次閱讀
- 汽車網(wǎng)絡(luò)LIN總線協(xié)議解析 1.7w次閱讀
- 什么是高頻板?詳細(xì)解析高頻板參數(shù) 3.6w次閱讀
- udp協(xié)議詳細(xì)介紹與qudpsocket編程 8969次閱讀
下載排行
本周
- 1電子電路原理第七版PDF電子教材免費(fèi)下載
- 0.00 MB | 1490次下載 | 免費(fèi)
- 2單片機(jī)典型實(shí)例介紹
- 18.19 MB | 93次下載 | 1 積分
- 3S7-200PLC編程實(shí)例詳細(xì)資料
- 1.17 MB | 27次下載 | 1 積分
- 4筆記本電腦主板的元件識別和講解說明
- 4.28 MB | 18次下載 | 4 積分
- 5開關(guān)電源原理及各功能電路詳解
- 0.38 MB | 10次下載 | 免費(fèi)
- 6基于AT89C2051/4051單片機(jī)編程器的實(shí)驗(yàn)
- 0.11 MB | 4次下載 | 免費(fèi)
- 7基于單片機(jī)和 SG3525的程控開關(guān)電源設(shè)計(jì)
- 0.23 MB | 3次下載 | 免費(fèi)
- 8基于單片機(jī)的紅外風(fēng)扇遙控
- 0.23 MB | 3次下載 | 免費(fèi)
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234313次下載 | 免費(fèi)
- 2PADS 9.0 2009最新版 -下載
- 0.00 MB | 66304次下載 | 免費(fèi)
- 3protel99下載protel99軟件下載(中文版)
- 0.00 MB | 51209次下載 | 免費(fèi)
- 4LabView 8.0 專業(yè)版下載 (3CD完整版)
- 0.00 MB | 51043次下載 | 免費(fèi)
- 5555集成電路應(yīng)用800例(新編版)
- 0.00 MB | 33562次下載 | 免費(fèi)
- 6接口電路圖大全
- 未知 | 30320次下載 | 免費(fèi)
- 7Multisim 10下載Multisim 10 中文版
- 0.00 MB | 28588次下載 | 免費(fèi)
- 8開關(guān)電源設(shè)計(jì)實(shí)例指南
- 未知 | 21539次下載 | 免費(fèi)
總榜
- 1matlab軟件下載入口
- 未知 | 935053次下載 | 免費(fèi)
- 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
- 78.1 MB | 537791次下載 | 免費(fèi)
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420026次下載 | 免費(fèi)
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234313次下載 | 免費(fèi)
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費(fèi)
- 6電路仿真軟件multisim 10.0免費(fèi)下載
- 340992 | 191183次下載 | 免費(fèi)
- 7十天學(xué)會AVR單片機(jī)與C語言視頻教程 下載
- 158M | 183277次下載 | 免費(fèi)
- 8proe5.0野火版下載(中文版免費(fèi)下載)
- 未知 | 138039次下載 | 免費(fèi)
評論
查看更多