...
|
...
|
@@ -39,20 +39,20 @@ public interface YhMessageConsumer { |
|
|
```
|
|
|
|
|
|
> DefaultConsumerFactory初始化过程
|
|
|
1. getBeans (Type:YhMessageConsumer)
|
|
|
2. 遍历YhMessageConsumer list
|
|
|
3. 创建SimpleMessageListenerContainer -> listenerContainer
|
|
|
4. 初始化设置listenerContainer
|
|
|
5. 设置消费者,通过适配器适配(MessageListenerAdapter会适配YhMessageConsumer的handleMessage方法)。
|
|
|
####1. getBeans (Type:YhMessageConsumer)
|
|
|
####2. 遍历YhMessageConsumer list
|
|
|
####3. 创建SimpleMessageListenerContainer -> listenerContainer
|
|
|
####4. 初始化设置listenerContainer
|
|
|
####5. 设置消费者,通过适配器适配(MessageListenerAdapter会适配YhMessageConsumer的handleMessage方法)。
|
|
|
这里也可以让YhMessageConsumer实现MessageListener接口作为消息处理监听者。
|
|
|
6. 创建队列
|
|
|
6.1. 创建queue name:yoho:模块名:getMessageTopic
|
|
|
6.2. 绑定queue<----->amq.topic<------>getMessageTopic
|
|
|
6.3. 返回队列名new_queue
|
|
|
7. listenerContainer设置监听队列名new_queue
|
|
|
8. 启动listenerContainer
|
|
|
|
|
|
下图是大致初始化相关图:
|
|
|
####6. 创建队列
|
|
|
#####6.1. 创建queue name:yoho:模块名:getMessageTopic
|
|
|
#####6.2. 绑定queue<----->amq.topic<------>getMessageTopic
|
|
|
#####6.3. 返回队列名new_queue
|
|
|
####7. listenerContainer设置监听队列名new_queue
|
|
|
####8. 启动listenerContainer
|
|
|
|
|
|
####下图是大致初始化相关图:
|
|
|
![](PIC/yoho_mq_simple.png)
|
|
|
|
|
|
|
...
|
...
|
@@ -80,29 +80,29 @@ TTl队列内的消息在到达ttl时间时就过期成为一个deadMsg。利用D |
|
|
|
|
|
|
|
|
> DelayConsumerFactory初始化过程
|
|
|
1. getBeans (Type:YhDelayMessageConsumer)
|
|
|
2. 遍历YhDelayMessageConsumer list
|
|
|
3. 创建SimpleMessageListenerContainer -> listenerContainer
|
|
|
4. 初始化设置listenerContainer
|
|
|
5. 设置消费者,通过适配器适配(MessageListenerAdapter会适配YhMessageConsumer的handleMessage方法)。
|
|
|
####1 getBeans (Type:YhDelayMessageConsumer)
|
|
|
####2 遍历YhDelayMessageConsumer list
|
|
|
####3 创建SimpleMessageListenerContainer -> listenerContainer
|
|
|
####4 初始化设置listenerContainer
|
|
|
####5 设置消费者,通过适配器适配(MessageListenerAdapter会适配YhMessageConsumer的handleMessage方法)。
|
|
|
这里也可以让YhMessageConsumer实现MessageListener接口作为消息处理监听者。
|
|
|
6. 创建延时队列<br>
|
|
|
```6.1. 创建timeQueue
|
|
|
####6 创建延时队列
|
|
|
#####6.1 创建timeQueue
|
|
|
**name**: delay:[delayInMinutes]m.queue
|
|
|
**x-message-ttl** : delayInMinutes
|
|
|
**x-dead-letter-exchange** : yoho.expire
|
|
|
```6.2. 绑定
|
|
|
#####6.2 绑定
|
|
|
delay:[delayInMinutes]m.queue<----->amq.topic<------>yoho_delay.[delayInMinutes]m.*
|
|
|
7. 创建最终消费队列
|
|
|
```7.1 创建expiredQueue
|
|
|
####7 创建最终消费队列
|
|
|
#####7.1 创建expiredQueue
|
|
|
name:yoho_delay:模块名:getMessageTopic
|
|
|
```7.2 绑定
|
|
|
#####7.2 绑定
|
|
|
yoho_delay:模块名:getMessageTopic<----->yoho.expire<------>yoho_delay.*.getMessageTopic
|
|
|
```7.3 返回expiredQueue队列名
|
|
|
8. listenerContainer设置监听队列名expiredQueue
|
|
|
9. 启动listenerContainer
|
|
|
#####7.3 返回expiredQueue队列名
|
|
|
####8 listenerContainer设置监听队列名expiredQueue
|
|
|
####9 启动listenerContainer
|
|
|
|
|
|
下图是大致初始化相关图:
|
|
|
####下图是大致初始化相关图:
|
|
|
![](PIC/yoho_mq_delay.png)
|
|
|
|
|
|
|
...
|
...
|
|