Authored by FengRuwei

update

... ... @@ -47,14 +47,9 @@ public interface YhMessageConsumer {
 这里也可以让YhMessageConsumer实现MessageListener接口作为消息处理监听者。
6. 创建队列
 
 
  6.1. 创建queue name:yoho:模块名:getMessageTopic
 
 
  6.2. 绑定queue<----->amq.topic<------>getMessageTopic
 
 
  6.3. 返回队列名new_queue
  1. 创建queue name:yoho:模块名:getMessageTopic
  2. 绑定queue<----->amq.topic<------>getMessageTopic
  3. 返回队列名new_queue
7. listenerContainer设置监听队列名new_queue
8. 启动listenerContainer
... ... @@ -68,9 +63,15 @@ Rabbit MQ通过TTL与DLX可以实现延时消息队列。
设置队列为TTL主要通过设置队列属性**x-message-ttl**,单位为ms。
TTl队列内的消息在到达ttl时间时就过期成为一个deadMsg。利用DLX,MQ可以将deadMsg再次进行转发,转发到哪呢,可以通过设置**x-dead-letter-exchange**来指定deadMsg转发到这个exchange,yoho-core中使用*yoho.expire*来接收deadMsg。
还可以通过设置**x-dead-letter-routing-key**来指定deadMsg过期后转发使用的routing-key,yoho-core并没有使用这个属性,因此deadMsg超时后转发时使用原来这个消息发送时的routing-key。
######**x-message-ttl** : 队列超时时间
######**x-dead-letter-exchange** :超时消息被丢弃到这里
######**x-dead-letter-routing-key** : 超时消息被丢弃时使用的routing-key
######**x-message-ttl** : 队列超时时间
######**x-dead-letter-exchange** :超时消息被丢弃到这里
######**x-dead-letter-routing-key** : 超时消息被丢弃时使用的routing-key
<br>然后我们需要创建一个队列(final_queue)专门来接收这些deadMsg,队列需要绑定到x-dead-letter-exchange,如果有x-dead-letter-routing-key的话通过其绑定,如果未设置x-dead-letter-routing-key,则通过原来的routing-key进行绑定。<br>
最后延时消息的消费者通过绑定final_queue队列,达成消息的延时处理。
... ...