0


rabbitmq topic模式设置#通配符情况下 消费者队列未接收消息问题排查解决

在这里插入图片描述

目录

说明

生产者配置
Exchange:topic_exchange_shcool
Routing key:topic.shcool.#

消费者代码配置
Exchange:topic_exchange_shcool
Routing key:topic.shcool.user

@PostConstructpublicvoidtwoRabbitInit(){//声明交换机
        twoRabbitAdmin.declareExchange(newTopicExchange("topic_exchange_shcool",true,false));//声明队列
        twoRabbitAdmin.declareQueue(newQueue("topic.shcool.user",true));//绑定队列及交换机
        twoRabbitAdmin.declareBinding(BindingBuilder.bind(newQueue("topic.shcool.user",true,false,false)).to(newTopicExchange(twoTopicExchange,true,false)).with("topic.shcool.user"));}

其实以上代码看着没有问题,意思是代码生成一个队列,并把【topic.shcool.user】队列和生产者的【topic_exchange_shcool】exchange绑定,但是生产者发送消息是通过【topic.shcool.#】通配符去发送的,所以在绑定队列和交换机的时候.with方法要设置好Routing key,并不是你队列的名字,Routing key要和消息生产者的Routing key保持一致,否则消费者即使将队列绑定到exchange也永远无法收到消息,正确代码如下:

@PostConstructpublicvoidtwoRabbitInit(){//声明交换机
        twoRabbitAdmin.declareExchange(newTopicExchange("topic_exchange_shcool",true,false));//声明队列
        twoRabbitAdmin.declareQueue(newQueue("topic.shcool.user",true));//绑定队列及交换机
        twoRabbitAdmin.declareBinding(BindingBuilder.bind(newQueue("topic.shcool.user",true,false,false)).to(newTopicExchange(twoTopicExchange,true,false))//不设置通配符 消息不会到队列里来.with("topic.shcool.#"));}

这样只要消费者的Exchange为【topic_exchange_shcool】,且队列名为topic.shcool.开头的,都能接收到消息

如果队列还消费不到消息,可能有以下情况:

1、是否与其他队列名起冲突,例如有两个同名队列,消息会被其他队列消费
2、rabbitmq图形界面上Exchange绑定关系是否还存在以前的,需要手动解除绑定
3、队列是否与通配符的Routing key绑定
在这里插入图片描述

      就先说到这 
     
    
   
  
    \color{#008B8B}{ 就先说到这} 
   
  
就先说到这

 
  
   
    
     
     
       在下 
      
     
       A 
      
     
       p 
      
     
       o 
      
     
       l 
      
     
       l 
      
     
       o 
      
     
    
   
  
    \color{#008B8B}{在下Apollo} 
   
  
在下Apollo

 
  
   
    
     
     
       一个爱分享 
      
     
       J 
      
     
       a 
      
     
       v 
      
     
       a 
      
     
       、生活的小人物, 
      
     
    
   
  
    \color{#008B8B}{一个爱分享Java、生活的小人物,} 
   
  
一个爱分享Java、生活的小人物,

 
  
   
    
    
      咱们来日方长,有缘江湖再见,告辞! 
     
    
   
  
    \color{#008B8B}{咱们来日方长,有缘江湖再见,告辞!} 
   
  
咱们来日方长,有缘江湖再见,告辞!

在这里插入图片描述


本文转载自: https://blog.csdn.net/pang_ping/article/details/129046551
版权归原作者 宋峥清 所有, 如有侵权,请联系我们删除。

“rabbitmq topic模式设置#通配符情况下 消费者队列未接收消息问题排查解决”的评论:

还没有评论