使用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(广播路由)
- 通用的业务: 产品