消息队列(3):RabbitMQ
RabbitMQ,基于AMQP協(xié)議實現(xiàn)。
特點:
消息可靠:持久化消息,傳輸確認(rèn),發(fā)布確認(rèn)。
路由靈活:使用AMQP的Exchange來路由消息,包括RabbitMQ內(nèi)置的Exchange,還有復(fù)雜的路由也可以使用多個Exchange綁定,定制實現(xiàn)。
支持集群:
高可用:
多協(xié)議:RabbitMQ除了支持AMQP協(xié)議,還可以通過插件的方式支持其他協(xié)議,比如STOMP,MQTT。
支持多語言客戶端:
提供管理界面:
提供消息跟蹤機(jī)制:如果消息異常,使用者可以查出發(fā)生了什么情況。
提供插件機(jī)制:可擴(kuò)展
概念
RabbitMQ概念方面基本和AMQP協(xié)議的概念一樣。
Message(消息):消息由消息頭和消息體組成。消息體不透明,消息頭由一系列可選屬性組成,包括路由信息,消息優(yōu)先級,消息是否持久化等。
Publisher(消息生產(chǎn)者):向交換器發(fā)布消息的客戶端。
Consumer(消息消費(fèi)者):從消息隊列中取消息的客戶端。
Exchange(交換器):接收生產(chǎn)者發(fā)出的消息,并路由給服務(wù)器中的隊列。
Queue(消息隊列):用來保存消息直到發(fā)送給消費(fèi)者。
Binding(綁定):用于消息隊列和交換器直接的關(guān)聯(lián)。一個綁定就是一個路由規(guī)則。
Broker:隊列服務(wù)器實體。
Connection(網(wǎng)絡(luò)連接):比如一個TCP連接。
Channel(信道):獨(dú)立的雙向數(shù)據(jù)流通道,建立在真實的TCP連接內(nèi)。發(fā)送消息和接收消息,都是通過信道完成的,引入信道也是因為建立和銷毀TCP連接開銷很昂貴,使用信道的概念復(fù)用TCP連接。
vhost(虛擬主機(jī)):一批交換器,消息隊列和相關(guān)對象??s小版的RabbitMQ服務(wù)器,必須在連接時指定。
如下圖:
總結(jié)
以上是生活随笔為你收集整理的消息队列(3):RabbitMQ的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: iPhone各版本屏幕尺寸
- 下一篇: 为什么CAP不能同时满足的简单理解