[TOC]
# 1. 五種工作模式
* [ ] 生產者:復制產生消息,并發送到交換機
* [ ] 交換機:將消息投遞到隊列
* [ ] 隊列:需要和交換機綁定:key或者訂閱模式
* [ ] 消費者:從隊列中取消息
> 1.生產者的消息都是先到交換機
> 2.交換機在向消費者發消息
## 1.1 簡單工作模式
1. 當生產端發送消息到交換機(默認交換機),交換機根據消息屬性發送到隊列
2. 消費者監聽綁定隊列實現消息的接收和消費邏輯編寫
3. 簡單模式下,強調的一個隊列queue只對應一個消費者.
4. 常見的應用場景就是**一發一接**的結構,例如:手機短信郵件單發

## 1.2 爭搶模式(Work模式)
1. 與簡單模式基本相同,不同的是一個隊列綁定多個消費者
2. 多個消費者爭奪消費同一隊列中的消息-一個消息最終只能被其中的一個消費者消費
3. 應用場景:搶紅包、資源分配系統

## 1.3 路由模式
1. 生產端:發送消息,在消息中處理消息內容,攜帶一個routingkey
2. 交換機:接收消息,根據消息的routingkey去計算匹配后端隊列的routingkey
3. 隊列:存儲交換機發送的消息
4. 消費端:簡單模式 工作爭搶
5. 交換機類型:direct


## 1.4 發布訂閱模式(Pulish/Subscribe模式 Fanout廣播)
群發消息到所有隊列,隊列的多個消費者爭搶消費
交換機類型:fanout

## 1.5 主題模式(Topics模式 Tpoic通配符)
生產端:攜帶路由key,發送消息到交換機
隊列:綁定交換機和路由不一樣,不是一個具體的路由key,而可以使用\*和#代替一個范圍
| * | 字符串,只能表示一級 |
| --- | --- |
| # | 多級字符串 |
交換機:根據匹配規則,將路由key對應發送到隊列
消息路由key:
* 北京市.朝陽區.酒仙橋
* 北京市.#: 匹配true
* 上海市.浦東區.\*: 沒匹配false
* 新疆.烏魯木齊.#
