使用RabbitMQ的好處: 解耦、異步、削峯!
RabbitMQ 工作模型
- AMQP消息協議,不是JMS協議
- 消息存放在數據庫:
- Erlang編寫的Mnesia數據庫
- 事件機制 監聽
- 交換機用來 路有消息!
- 交換機與隊列是 多對多 的關係,但是在開發中爲了方便管理,一般做成一對一的關係。
- 消費者與隊列也可以是 多對多 的關係,但是在開發中爲了方便管理,一般做成一對一的關係。
Exchange
Direct Exchange(直連路由)
- binding key = routing key
- 業務目的明確
- 銷售系統 - SSO(OA) 銷售人員入職
Topic Exchange(主題路由)
- “*” 1個單詞
- “#” 0個或多個單詞
- 用“.”進行單詞分割
- 業務主題的過濾: 資金;產品;風控
- 系統分級的過濾:dev sit uat prod
Fanout Exchange(廣播路由)
- 通用的業務: 產品