因为多机环境fanout广播模式,每台机器需要使用自己的队列接受消息
所以尝试使用以下的方案

    private static final String QUEUE_NAME="foo."+IPUtils.getLocalhostIp();
@RabbitListener(queues = QUEUE_NAME)
public void process(String command){
...
}

but...果断报错:Attribute value must be constant

解决方案----Spring SPEL表达式闪亮登场(网上都是什么乱七八糟复杂又不好用的)

    private static final String QUEUE_NAME="foo."+IPUtils.getLocalhostIp();

    @Bean
public Queue queue(){
return new Queue(QUEUE_NAME,true);
}
@RabbitListener(queues = "#{queue.name}")
public void process(String command){
...
}

以上

作者:乔_a988
链接:https://www.jianshu.com/p/a0e4f45e0176
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

springboot+RabbitMQ 问题 RabbitListener 动态队列名称:Attribute value must be constant的更多相关文章

  1. springboot rabbitmq 找不到队列

    错误报告: org.springframework.amqp.rabbit.listener.BlockingQueueConsumer$DeclarationException: Failed to ...

  2. SpringBoot | 第三十八章:基于RabbitMQ实现消息延迟队列方案

    前言 前段时间在编写通用的消息通知服务时,由于需要实现类似通知失败时,需要延后几分钟再次进行发送,进行多次尝试后,进入定时发送机制.此机制,在原先对接银联支付时,银联的异步通知也是类似的,在第一次通知 ...

  3. SpringBoot RabbitMQ 延迟队列代码实现

    场景 用户下单后,如果30min未支付,则删除该订单,这时候就要可以用延迟队列 准备 利用rabbitmq_delayed_message_exchange插件: 首先下载该插件:https://ww ...

  4. springboot rabbitmq 死信队列应用场景和完整demo

    何为死信队列? 死信队列实际上就是,当我们的业务队列处理失败(比如抛异常并且达到了retry的上限),就会将消息重新投递到另一个Exchange(Dead Letter Exchanges),该Exc ...

  5. springboot + rabbitmq 整合示例

    几个概念说明:Broker:简单来说就是消息队列服务器实体.Exchange:消息交换机,它指定消息按什么规则,路由到哪个队列.Queue:消息队列载体,每个消息都会被投入到一个或多个队列.Bindi ...

  6. SpringBoot RabbitMQ 注解版 基本概念与基本案例

    前言 人间清醒 目录 前言 Windows安装RabbitMQ 环境工具下载 Erlang环境安装 RabbitMQ安装 RabbitMQ Web管理端安裝 RabbitMQ新增超级管理员 Rabbi ...

  7. springboot+rabbitmq例子

    demo目录 贴代码 1.ProducerConfig.java package com.test.config; import org.springframework.amqp.core.Bindi ...

  8. springboot+rabbitmq整合示例程

    关于什么是rabbitmq,请看另一篇文: http://www.cnblogs.com/boshen-hzb/p/6840064.html 一.新建maven工程:springboot-rabbit ...

  9. spring boot Rabbitmq集成,延时消息队列实现

    本篇主要记录Spring boot 集成Rabbitmq,分为两部分, 第一部分为创建普通消息队列, 第二部分为延时消息队列实现: spring boot提供对mq消息队列支持amqp相关包,引入即可 ...

随机推荐

  1. page的js访问全局变量:app.globalData.openid

    page获取app.js:const app = getApp(); page的js访问全局变量(get/set):const app = getApp(); app.globalData.openi ...

  2. Web点击链接调起手机系统自带短信发短信

    实现代码如下: 一.Html代码 <a href="javascript:;" class="xq-sms">发送短信</a> 二.jQ ...

  3. AI人脸识别的测试重点

    最常见的 AI应用就是人脸识别,因此这篇文章从人脸识别的架构和核心上,来讲讲测试的重点. 测试之前需要先了解人脸识别的整个流程,红色标识代表的是对应AI架构中的各个阶段 首先是人脸采集. 安装拍照摄像 ...

  4. 网页跳H5实例

    public static void CheckAgent() { string redirect = string.Empty; string agent = HttpContext.Current ...

  5. [b0013] Hadoop 版hello word mapreduce wordcount 运行(三)

    目的: 不用任何IDE,直接在linux 下输入代码.调试执行 环境: Linux  Ubuntu Hadoop 2.6.4 相关: [b0012] Hadoop 版hello word mapred ...

  6. python爬虫(4)——scrapy框架

    安装 urllib库更适合写爬虫文件,scrapy更适合做爬虫项目. 步骤: 先更改pip源,国外的太慢了,参考:https://www.jb51.net/article/159167.htm 升级p ...

  7. devops 下测试组织管理面临的挑战及应对

    导读 先从引发的5个问题讲起,再简单回顾一下devops 简介和兴起背景 ,再从itest 测试管理团队的视角提出应对办法 DevOps后,测试面临的挑战        敏捷开发必然是迭代开发管理模式 ...

  8. 逆向破解之160个CrackMe —— 010-011

    CrackMe —— 010 160 CrackMe 是比较适合新手学习逆向破解的CrackMe的一个集合一共160个待逆向破解的程序 CrackMe:它们都是一些公开给别人尝试破解的小程序,制作 c ...

  9. nginx 的 一些配置说明

    default 配置参考https://www.cnblogs.com/kuku0223/p/10740735.html 设置了default     除了指定的域名,  如果是没有配置的域名解析过来 ...

  10. 201871010132--张潇潇--《面向对象程序设计(java)》第十五周学习总结

    博文正文开头格式:(2分) 项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh/ 这个作业的要求在哪里 https://www.cnblogs.co ...