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

news2025/7/18 18:05:53

在这里插入图片描述

目录

  • 说明

说明

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

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

@PostConstruct
    public void twoRabbitInit() {
        //声明交换机
        twoRabbitAdmin.declareExchange(new TopicExchange("topic_exchange_shcool", true, false));
        //声明队列
        twoRabbitAdmin.declareQueue(new Queue("topic.shcool.user", true));
        //绑定队列及交换机
        twoRabbitAdmin.declareBinding(BindingBuilder.bind(new Queue("topic.shcool.user", true, false, false))
                .to(new TopicExchange(twoTopicExchange, true, false))
                .with("topic.shcool.user"));
    }

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

@PostConstruct
    public void twoRabbitInit() {
        //声明交换机
        twoRabbitAdmin.declareExchange(new TopicExchange("topic_exchange_shcool", true, false));
        //声明队列
        twoRabbitAdmin.declareQueue(new Queue("topic.shcool.user", true));
        //绑定队列及交换机
        twoRabbitAdmin.declareBinding(BindingBuilder.bind(new Queue("topic.shcool.user", true, false, false))
                .to(new TopicExchange(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}{咱们来日方长,有缘江湖再见,告辞!} 咱们来日方长,有缘江湖再见,告辞!

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/347346.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基于微信小程序云开发实现考研题库小程序项目(完整版)

今天手把手的带大家实现一款答题类的题库小程序,如果着急的话,可以直接去看文末源码.下载与项目部署。考研题库小程序云开发实战,完整版提供给大家学习。题库小程序,基于云开发的微信答题小程序,软件架构是微信原生小程…

YOLOv8进行改进并训练自定义的数据集

一.训练数据集准备 YOLOv8的训练数据格式与YOLOv5的训练数据格式一致,这一部分可以进行沿用。之前博文有发布VOC标注格式转YOLO标注格式的脚本,有需要可以查看。 二.项目克隆 YOLOv8项目文件可以直接去github上下载zip文件然后解压,也可以直…

Telerik UI for WPF 2023 R1

Telerik UI for WPF 2023 R1 之 WPF 的 Telerik 用户界面,WPF 控件库开发人员信任,快速构建美观、高性能的 WPF 业务应用程序。现在支持 .NET 6 和 7.0。 概述部分背景图像 主要特征 现代专业主题图标,现代专业主题 通过各种受 Office、Wind…

【机器学习】P0 基础与相关名词

机器学习基础与相关名词什么是机器学习监督学习与非监督学习Classification And RegressionClusteringModel and Function什么是机器学习 机器学习是计算机发展到一定阶段的必然产物。相比于19世纪一个房间大小的计算机,当前的计算机更便携,性能更强&am…

开源项目-旅游信息管理系统

哈喽,大家好,今天给大家带来一个开源系统-旅游信息管理系统 前台 地址:http://ip/index 账号:user 密码:123456 后台 地址:http://ip/login 账号:root 密码:123456 功能模块:旅游路线、旅游景点、旅游酒店、旅游车票、旅游保险、旅游策略、订单管理、留言管理、数据…

一篇解决Linux 中的负载高低和 CPU 开销并不完全对应

负载是查看 Linux 服务器运行状态时很常用的一个性能指标。在观察线上服务器运行状况的时候,我们也是经常把负载找出来看一看。在线上请求压力过大的时候,经常是也伴随着负载的飙高。 但是负载的原理你真的理解了吗?我来列举几个问题&#x…

c/c++开发,无可避免的模板编程实践(篇二)

一、开发者需要对模板参数负责 1.1 为您模板参数提供匹配的操作 在进行模板设计时,函数模板或类模板一般只做模板参数(typename T)无关的操作为主,但是也不见得就不会关联模板参数自身的操作,尤其是在一些自定义的数据…

JVM基础学习

JVM分为两个子系统,两个组件一个子系统是Class loader类装载系统,另一个子系统是Execution Engine执行引擎一个组件是Runtime data area 运行时数据区,Native Interface 本地接口Class loader:根据给定的全限定类名来装载class文件到运行时数…

借助docker, 使用verdaccio搭建npm私服

为何要搭建npm私服 搭建npm私服好处多多,网上随便一篇教程搜出来都罗列了诸多好处,譬如: 公司内部开发环境与外网隔离,内部开发的一些库高度隐私不便外传,内网搭建npm服务保证私密性同属内网,可以确保使用npm下载依赖…

RPC技术选型

前言HTTP1.0 & HTTP1.1 & HTTP2.0 & RPCHTTP1.0无法复用连接HTTP1.0 协议时,HTTP 调用还只能是短链接调用,每次发送请求的时候,都需要进行一次TCP的连接,而TCP的连接释放过程又是比较费事的。这种无连接的特性会使得网…

金三银四跳槽季,JAVA面试撸题就来【笑小枫】微信小程序吧~

JAVA面试撸题就来【笑小枫】微信小程序啦~ 疫情已过,金三银四即将到来,小伙伴们是否有跳槽的打算呢?不管有没有,技术不能丢,让我们一起来撸题吧。 博主最近整理了一批面试题,包括JAVA基础、多线程与锁、Red…

媒体邀约电视台对商业活动选题有什么要求?如何邀请电视台报道

传媒如春雨,润物细无声,大家好随着互联网,移动互联网的快速发展,大众在电视上消磨的时间就越来越短了,但是随着新媒体的出现,传统媒体不断的跟进发展,不断打造自己的媒体矩阵,虽然离…

界面控件DevExpress WinForm——轻松构建类Visual Studio UI(一)

DevExpress WinForm拥有180组件和UI库,能为Windows Forms平台创建具有影响力的业务解决方案。DevExpress WinForm能完美构建流畅、美观且易于使用的应用程序,无论是Office风格的界面,还是分析处理大批量的业务数据,它都能轻松胜任…

图穷了,来搞一搞(内附源码)

本章继续我们的爬虫教程,爬什么呢 ,还是斗图,娱乐性的东西,为什么要爬? 因为我图库空了,发现这个网址的图库还是很丰富的。 「注意:如下文,是封装后拆分的,所以详情参照…

Word处理控件Aspose.Words功能演示:使用 C# 在电子邮件正文中发送 Word 文档

Aspose.Words 是一种高级Word文档处理API,用于执行各种文档管理和操作任务。API支持生成,修改,转换,呈现和打印文档,而无需在跨平台应用程序中直接使用Microsoft Word。此外,API支持所有流行的Word处理文件…

《精通Spring4.x 企业应用开发实战》第12章 Spring 的事务管理难点剖析

目录标题前言一、DAO 和事务管理的牵绊二、应用分层的迷惑三、事务方法嵌套调用的迷茫(事务传播行为)1.Spring 事务传播机制回顾2.相互嵌套的服务方法四、多线程的困惑1. Spring 通过单实例化 Bean 简化多线程问题2.启动独立线程调用事务方法五、联合军种作战的混乱1.Spring 事…

用了 ChatGPT 后,我迫不及待的问了它这 10 个问题

前言20230208 日,ChatGPT 已经联手微软登录必应搜索引擎,谷歌、百度等巨头更是紧随其后着急麻慌的推出自己的 AI 聊天产品,有理由相信,传统搜索引擎时代已经结束,不远的未来,每个人家里都会有一个可以陪你聊…

数字芯片是怎样设计出来的?

芯片在我们的生活和工作中无处不在。例如,交通智能卡就嵌入了一颗带有微处理器、储存单元、芯片操作系统的芯片;而手机的主板则集成了数百颗芯片,有的负责无线电收发、有的负责功率放大、还有的负责存储照片和文件、处理音频,完成…

如何查找专用 IP 地址?

专用 IP 地址:这些地址在网络内部使用,例如,平板电脑、Wi-Fi 相机、无线打印机和台式电脑使用的家庭网络。这些类型的 IP 地址为设备提供了一种与路由器和专用家庭网络上的其他设备进行通信的方法。私有IP地址可以手动设置,也可以…

Mr. Cappuccino的第40杯咖啡——Kubernetes之Pod生命周期

Kubernetes之Pod生命周期Pod生命周期官方文档Pod的状态初始化容器案例钩子函数Exec命令TCPSocketHTTPGet案例容器探测Exec命令TCPSocketHTTPGet探测时间重启策略Pod生命周期官方文档 Pod生命周期官方文档 Pod的状态 pending:挂起,apiserver创建了pod资…