基本概念
rabbitMQbase.png
Broker:即消息隊(duì)列服務(wù)器實(shí)體
vhost:虛擬主機(jī)署咽,一個(gè)broker里可以開設(shè)多個(gè)vhost,用作不同用戶的權(quán)限分離
Exchange:消息交換機(jī)鳞贷,它指定消息按什么規(guī)則缤灵,路由到哪個(gè)隊(duì)列
Queue:消息隊(duì)列載體怎诫,每個(gè)消息都會(huì)被投入到一個(gè)或多個(gè)隊(duì)列
Binding:綁定酣胀,它的作用就是把exchange和queue按照路由規(guī)則綁定起來
Routing Key:路由關(guān)鍵字声功,exchange根據(jù)這個(gè)關(guān)鍵字進(jìn)行消息投遞
producer:消息生產(chǎn)者城侧,就是投遞消息的程序
consumer:消息消費(fèi)者芝薇,就是接受消息的程序
channel:消息通道,在客戶端的每個(gè)連接里肉津,可建立多個(gè)channel强胰,每個(gè)channel代表一個(gè)會(huì)話任務(wù)
其工作流程簡(jiǎn)單來說:生產(chǎn)者將消息發(fā)送給對(duì)應(yīng)的exchange,exchang按照Binding關(guān)系投遞到對(duì)應(yīng)的queue,然后推送給對(duì)應(yīng)的消費(fèi)者
使用rabbit的好處:
1,解耦 妹沙,將非核心業(yè)務(wù)與主流業(yè)務(wù)解耦
2偶洋,實(shí)現(xiàn)異步處理
3,削峰填谷距糖,在某些業(yè)務(wù)場(chǎng)景下玄窝,可以將大流量放入MQ中,然后慢慢處理
Exchange幾種類型
direct
一個(gè)routingKey對(duì)應(yīng)一個(gè)綁定的queue
faout
一個(gè)routingKey對(duì)應(yīng)多個(gè)綁定的queue
topic
一個(gè)routingKey按照模糊匹配的規(guī)則綁定多個(gè)queue,注意 * 匹配一個(gè)單詞悍引,# 匹配一個(gè)或多個(gè)單詞