RabbitMQ是實現(xiàn)了高級消息隊列協(xié)議(AMQP)的開源消息代理軟件(亦稱面向消息的中間件)努潘。RabbitMQ服務(wù)器是用Erlang語言編寫的勃蜘,而集群和故障轉(zhuǎn)移是構(gòu)建在開放電信平臺框架上的。所有主要的編程語言均有與代理接口通訊的客戶端庫谆沃。
???????????? RabbitMQ
歷史
Rabbit科技有限公司開發(fā)了RabbitMQ快骗,并提供對其的支持纫谅。起初株旷,Rabbit科技是LSHIFT和CohesiveFT在2007年成立的合資企業(yè)再登,2010年4月被VMware旗下的SpringSource收購。RabbitMQ在2013年5月成為GoPivotal的一部分。
基本概念
RabbitMQ是一套開源(MPL)的消息隊列服務(wù)軟件锉矢,是由 LShift 提供的一個 Advanced Message Queuing Protocol (AMQP) 的開源實現(xiàn)梯嗽,由以高性能、健壯以及可伸縮性出名的 Erlang 寫成沽损。
主要特性
可伸縮性:集群服務(wù)
消息持久化:從內(nèi)存持久化消息到硬盤慷荔,再從硬盤加載到內(nèi)存
?在綁定(Binding)Exchange和Queue的同時,一般會指定一個Binding
Key缠俺,生產(chǎn)者將消息發(fā)送給Exchange的時候,一般會產(chǎn)生一個Routing Key贷岸,當(dāng)Routing Key和Binding
Key對應(yīng)上的時候壹士,消息就會發(fā)送到對應(yīng)的Queue中去。那么Exchange有四種類型偿警,不同的類型有著不同的策略躏救。也就是表明不同的類型將決定綁定的Queue不同,換言之就是說生產(chǎn)者發(fā)送了一個消息螟蒸,Routing
Key的規(guī)則是A盒使,那么生產(chǎn)者會將Routing
Key=A的消息推送到Exchange中,這時候Exchange中會有自己的規(guī)則七嫌,對應(yīng)的規(guī)則去篩選生產(chǎn)者發(fā)來的消息少办,如果能夠?qū)?yīng)上Exchange的內(nèi)部規(guī)則就將消息推送到對應(yīng)的Queue中去。那么接下來就來詳細(xì)講解下Exchange里面類型诵原。