消息隊(duì)列RabbitMQ
RabbitMQ是一款支持持久化消息隊(duì)列的消息中間件。通過創(chuàng)建集群的方式來(lái)實(shí)現(xiàn)RabbitMQ以及所依賴的服務(wù)的部署,完全兼容RabbitMQ開源生態(tài)以及多語(yǔ)言客戶端,為用戶提供快速創(chuàng)建、方便管理的消息中間件。
產(chǎn)品優(yōu)勢(shì)
使用持久化、傳輸確認(rèn)及發(fā)布確認(rèn)等機(jī)制來(lái)保證消息的可靠性;通過使用haproxy的負(fù)載策略來(lái)轉(zhuǎn)發(fā)客戶端的請(qǐng)求到Rab-bitMQ集群中,緩解隊(duì)列集群中單一節(jié)點(diǎn)網(wǎng)絡(luò)負(fù)載等情況
支持多種模式,滿足不同使用場(chǎng)景,包括簡(jiǎn)單隊(duì)列模式、work模式、發(fā)布/訂閱模式、路由模式、topic模式等
RabbitMQ支持多種常用語(yǔ)言,比如Java、Python、Ruby、PHP、C#、JavaScript等
默認(rèn)隊(duì)列在集群中的機(jī)器上設(shè)置鏡像,使得在部分節(jié)點(diǎn)出現(xiàn)問題的情況下隊(duì)仍然可用。當(dāng)然用戶也可以靈活配置,根據(jù)使用場(chǎng)景,配置所需的模式
除了原生支持AMQP協(xié)議,還支持STOMP,MQTT等多種消息中間件協(xié)議
一鍵開啟消息隊(duì)列服務(wù),簡(jiǎn)化搭建和運(yùn)維流程;提供了一個(gè)易用的用戶界面,使得用戶可以監(jiān)控和管理消息、集群中的節(jié)點(diǎn)等
提供CPU使用率、內(nèi)存使用率、磁盤使用率、文件句柄使用數(shù)、Sockets句柄使用數(shù)等監(jiān)控項(xiàng),支持設(shè)置多項(xiàng)報(bào)警策略,幫助用戶了解實(shí)例動(dòng)態(tài)
對(duì)于典型的路由功能,RabbitMQ己經(jīng)提供了一些內(nèi)置的交換器來(lái)實(shí)現(xiàn)。針對(duì)更復(fù)雜的路由功能,可以將多個(gè)交換器綁定在一起,也可以通過插件機(jī)制來(lái)實(shí)現(xiàn)自己的交換器
產(chǎn)品功能
完全兼容開源RabbitMQ組件
靈活的交換機(jī)模式
多種監(jiān)控類型,保證MQ使用的穩(wěn)定性
應(yīng)用場(chǎng)景
異步解耦
異步解耦
將上、下游的業(yè)務(wù)系統(tǒng)進(jìn)行解耦,即便下游的某個(gè)業(yè)務(wù)出現(xiàn)不可用甚至宕機(jī)的情況(如商品管理、物流等),也不會(huì)影響核心交易系統(tǒng)的正常運(yùn)轉(zhuǎn),保證業(yè)務(wù)的連續(xù)性。通過RabbitMQ的異步化處理,使新增業(yè)務(wù)等操作變得更加簡(jiǎn)單,大幅度提高了系統(tǒng)的易用性,可以靈活高效地適應(yīng)因業(yè)務(wù)快速發(fā)展而帶來(lái)的變化。
削峰填谷
流量削鋒也是RabbitMQ中的常用場(chǎng)景,一般在秒殺或團(tuán)搶活動(dòng)中使用廣泛
電商業(yè)務(wù)場(chǎng)景中經(jīng)常會(huì)有秒殺或者團(tuán)搶的活動(dòng),此時(shí)會(huì)產(chǎn)生大量的請(qǐng)求涌入系統(tǒng),如果直接打到服務(wù)器上可能超出服務(wù)的最大承載能力,導(dǎo)致系統(tǒng)癱瘓。引入RabbitMQ,先將請(qǐng)求寫在RabbitMQ中,后臺(tái)服務(wù)器從RabbitMQ中讀取請(qǐng)求處理,把巨大的壓力從后端服務(wù)器轉(zhuǎn)移到RabbitMQ上來(lái)保障業(yè)務(wù)正常運(yùn)行。