Commit 72f27fdb authored by midKingKing's avatar midKingKing

Updates 后端开发/消息机制.md

Auto commit by GitBook Editor
parent 69ff5dd4
...@@ -24,27 +24,29 @@ RabbitMQ 是实现 AMQP(高级消息队列协议)的消息中间件的一种 ...@@ -24,27 +24,29 @@ RabbitMQ 是实现 AMQP(高级消息队列协议)的消息中间件的一种
在接口管理的消息队列定义模块中,首先进行交换机的定义,界面如图:![](/assets/exchange.png)注意: 在接口管理的消息队列定义模块中,首先进行交换机的定义,界面如图:![](/assets/exchange.png)注意:
交换机名称不可以重复定义,一个交换机可以对应多个队列 交换机名称不可以重复定义,一个交换机可以对应多个队列
交换机类型可以分为**direct\(唯一模式\),topic\(主题模式\),fanout\(广播模式\),**rabbitmq会根据你的交换机类型和定义的路由键,完成消息的转发**。** 交换机类型可以分为**direct\(唯一模式\),topic\(主题模式\),fanout\(广播模式\),**rabbitmq会根据你的交换机类型和定义的路由键,完成消息的转发**。**
持久化(durable):交换机在服务关闭后,清除与否 持久化(durable):交换机在服务关闭后,清除与否
自动删除(auto-delete):当交换机没有相应的队列匹配时,删除与否 自动删除(auto-delete):当交换机没有队列绑定时,删除与否。
### 2.2 定义队列和路由键 ### 2.2 定义队列和路由键
定义完交换机后,你还需要定义你的队列和相应的匹配模式(既路由键)界面如图:![](/assets/queue.png) 定义完交换机后,你还需要定义你的队列和相应的匹配模式(既路由键)界面如图:![](/assets/queue.png)
关键点 注意
1. 监听类需要在 Spring 中定义为 bean (也可以通过 @Component 之类的注解自动扫描注册) 队列名称不可以重复,但是一个队列可以对应多个交换机。
2. 添加注解 QueueMonitor,表示这个类要监听队列 `queue1`
3. 实现接口 IMessageConsumer,指定泛型类型
如果消息类型是 java bean 对象,比如 1.1章节 例子中 的 User,那么需要实现的接口是IMessageConsumer< User> 匹配模式(routing-key):此处的匹配模式即为路由键
> 绝大部分时候,都要保证发送的消息类型与接收的类型一致! 持久化(durable):队列在服务关闭后,清除与否。
自动删除(auto-delete):当队列没有绑定交换机时,删除与否。
私有队列(exclusive): 仅创建者可以使用的私有队列,断开后自动删除.
## 3 发送消息/接收消息 ## 3 发送消息/接收消息
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment