消息隊列RabbitMQ
RabbitMQ是一款支持持久化消息隊列的消息中間件。通過創(chuàng)建集群的方式來實現(xiàn)RabbitMQ以及所依賴的服務(wù)的部署,完全兼容RabbitMQ開源生態(tài)以及多語言客戶端,為用戶提供快速創(chuàng)建、方便管理的消息中間件。
產(chǎn)品優(yōu)勢
使用持久化、傳輸確認(rèn)及發(fā)布確認(rèn)等機制來保證消息的可靠性;通過使用haproxy的負(fù)載策略來轉(zhuǎn)發(fā)客戶端的請求到Rab-bitMQ集群中,緩解隊列集群中單一節(jié)點網(wǎng)絡(luò)負(fù)載等情況
支持多種模式,滿足不同使用場景,包括簡單隊列模式、work模式、發(fā)布/訂閱模式、路由模式、topic模式等
RabbitMQ支持多種常用語言,比如Java、Python、Ruby、PHP、C#、JavaScript等
默認(rèn)隊列在集群中的機器上設(shè)置鏡像,使得在部分節(jié)點出現(xiàn)問題的情況下隊仍然可用。當(dāng)然用戶也可以靈活配置,根據(jù)使用場景,配置所需的模式
除了原生支持AMQP協(xié)議,還支持STOMP,MQTT等多種消息中間件協(xié)議
一鍵開啟消息隊列服務(wù),簡化搭建和運維流程;提供了一個易用的用戶界面,使得用戶可以監(jiān)控和管理消息、集群中的節(jié)點等
提供CPU使用率、內(nèi)存使用率、磁盤使用率、文件句柄使用數(shù)、Sockets句柄使用數(shù)等監(jiān)控項,支持設(shè)置多項報警策略,幫助用戶了解實例動態(tài)
對于典型的路由功能,RabbitMQ己經(jīng)提供了一些內(nèi)置的交換器來實現(xiàn)。針對更復(fù)雜的路由功能,可以將多個交換器綁定在一起,也可以通過插件機制來實現(xiàn)自己的交換器
產(chǎn)品功能
完全兼容開源RabbitMQ組件
靈活的交換機模式
多種監(jiān)控類型,保證MQ使用的穩(wěn)定性
應(yīng)用場景

異步解耦
異步解耦
將上、下游的業(yè)務(wù)系統(tǒng)進行解耦,即便下游的某個業(yè)務(wù)出現(xiàn)不可用甚至宕機的情況(如商品管理、物流等),也不會影響核心交易系統(tǒng)的正常運轉(zhuǎn),保證業(yè)務(wù)的連續(xù)性。通過RabbitMQ的異步化處理,使新增業(yè)務(wù)等操作變得更加簡單,大幅度提高了系統(tǒng)的易用性,可以靈活高效地適應(yīng)因業(yè)務(wù)快速發(fā)展而帶來的變化。

削峰填谷
流量削鋒也是RabbitMQ中的常用場景,一般在秒殺或團搶活動中使用廣泛
電商業(yè)務(wù)場景中經(jīng)常會有秒殺或者團搶的活動,此時會產(chǎn)生大量的請求涌入系統(tǒng),如果直接打到服務(wù)器上可能超出服務(wù)的最大承載能力,導(dǎo)致系統(tǒng)癱瘓。引入RabbitMQ,先將請求寫在RabbitMQ中,后臺服務(wù)器從RabbitMQ中讀取請求處理,把巨大的壓力從后端服務(wù)器轉(zhuǎn)移到RabbitMQ上來保障業(yè)務(wù)正常運行。