RabbitMQ是實(shí)現(xiàn)了高級(jí)消息隊(duì)列協(xié)議(AMQP)的開(kāi)源消息代理軟件(亦稱面向消息的中間件)。RabbitMQ服務(wù)器是用Erlang編寫(xiě)的,而群集和故障轉(zhuǎn)移是構(gòu)建在開(kāi)放電信平臺(tái)框架上的。所有主要的編程語(yǔ)言均有與代理接口通訊的客戶端庫(kù)。
開(kāi)發(fā)歷史
Rabbit科技有限公司開(kāi)發(fā)了RabbitMQ,并提供對(duì)其的支持。起初,Rabbit科技是LSHIFT和CohesiveFT在2007年成立的合資企業(yè),2010年4月被威睿旗下的SpringSource收購(gòu)。
RabbitMQ在2013年5月成為GoPivotal的一部分。后于2019年12月,RabbitMQ再次被VMWare收購(gòu)。
自2020年11月以來(lái),RabbitMQ提供了商業(yè)版本,用于支持和企業(yè)功能:“VMware RabbitMQ OVA”“VMware RabbitMQ”和“VMware RabbitMQ for Kubernetes”(不同的功能級(jí)別)。Bitnami還為威睿的Tanzu應(yīng)用程序服務(wù)打包了開(kāi)源RabbitMQ,并提供商業(yè)支持。
功能特色
基本概念
RabbitMQ是一套開(kāi)源(MPL)的消息隊(duì)列服務(wù)軟件,是由 LShift 提供的一個(gè) Advanced Message Queuing Protocol (AMQP) 的開(kāi)源實(shí)現(xiàn),由以高性能、健壯以及可伸縮性出名的 Erlang 寫(xiě)成。除了AMQP,RabbitMQ還通過(guò)插件支持STOMP、MQTT等協(xié)議。
RabbitMQ服務(wù)支持下列操作系統(tǒng):
- Linux
- Windows, NT 到 10
- Windows Server 2003 到 2016
- Mac OS
- Solaris
- FreeBSD
- TRU64
- VxWorks
RabbitMQ支持下列編程語(yǔ)言:
- Python
- Java
- Ruby
- PHP
主要特性
可伸縮性:集群服務(wù)。
消息持久化:從內(nèi)存持久化消息到HDD,再?gòu)挠脖P(pán)加載到內(nèi)存。
插件系統(tǒng):提供了用于可擴(kuò)展性的插件平臺(tái),具有預(yù)定義的一組支持的插件集,如“Shovel”“Federation”和“Management”插件。
多協(xié)議支持:通過(guò)插件架構(gòu)擴(kuò)展以支持STOMP、MQTT等協(xié)議。
安裝
Erlang與RabbitMQ,安裝路徑都應(yīng)不含空格符。Erlang使用了環(huán)境變量HOMEDRIVE與HOMEPATH來(lái)訪問(wèn)配置文件erlang.cookie,應(yīng)注意這兩個(gè)環(huán)境變量的有效性。需要設(shè)定環(huán)境變量ERLANG_HOME,并把%ERLANG_HOME%\bin加入到全局路徑中。RabbitMQ使用本地計(jì)算機(jī) name作為服務(wù)器的地址,因此需要注意其有效性,或者直接解析為127.0.0.1。可能需要在本地網(wǎng)絡(luò)防火墻打開(kāi)相應(yīng)的端口。
參見(jiàn)
自由軟件主題
高級(jí)消息隊(duì)列協(xié)議(AMQP)
?MQ
參考資料 >