spring boot Activitymq topic与 queue 并存实现方案
Activitymq topic与 queue 并存实现方案
问题:
根据官方的事例文档,配置,我们发现按照该方案,发现要么实现topic 要么 实现queue,不能同时出现,因为他只是一个配置参数,结果值为true或是false。但是我们的实际使用场景,很可能会出现一个服务即需要队列,又需要订阅。本文档则着重解决这个问题。
一、引入activity_sample_activitymq
二、修改SampleActiveMQApplication
删除原有的queue方法,
替换为queue和topic的工厂
@Bean
publicJmsListenerContainerFactory<?> topicListenerFactory(ConnectionFactory connectionFactory,
DefaultJmsListenerContainerFactoryConfigurerconfigurer) {
DefaultJmsListenerContainerFactoryfactory = new DefaultJmsListenerContainerFactory();
//为true 则是 topic 不写则为queue
factory.setPubSubDomain(true);
configurer.configure(factory, connectionFactory);
return factory;
}
@Bean
publicJmsListenerContainerFactory<?> queueListenerFactory(ConnectionFactory connectionFactory,
DefaultJmsListenerContainerFactoryConfigurerconfigurer) {
DefaultJmsListenerContainerFactoryfactory = new DefaultJmsListenerContainerFactory();
configurer.configure(factory, connectionFactory);
return factory;
}
三、修改Consumer
删除原有的消费者方法,替换为:
// destination 监听的队列名, containerFactory 使用的工厂
@JmsListener(destination ="mytopic", containerFactory = "topicListenerFactory")
public void receiveTopicMessage(Stringcontext) {
System.out.println("Receivedtopic<" + context + ">");
}
@JmsListener(destination ="myqueue", containerFactory = "queueListenerFactory")
public void receiveQueueMessage(Stringcontext) {
System.out.println("Receivedqueue<" + context + ">");
}
四、修改消息生产者send方法
public void send(String msg) {
//key值 为 监听器监听的 队列名 value 可以是任意类型,需要在consumer中定义对应的类型才可以接受
this.jmsMessagingTemplate.convertAndSend("mytopic","topic");
this.jmsMessagingTemplate.convertAndSend("myqueue","queue");
}
五、结果
spring boot Activitymq topic与 queue 并存实现方案相关推荐
- Spring Boot 实现接口幂等性的 4 种方案!还有谁不会?
点击关注公众号,Java干货及时送达 作者:超级小豆丁 链接:mydlq.club/article/94 一.什么是幂等性 幂等是一个数学与计算机学概念,在数学中某一元运算为幂等时,其作用在任一元素两 ...
- Spring Boot 实现接口幂等性的 4 种方案作者:小小怪下士
一.什么是幂等性 幂等是一个数学与计算机学概念,在数学中某一元运算为幂等时,其作用在任一元素两次后会和其作用一次的结果相同.在计算机中编程中,一个幂等操作的特点是其任意多次执行所产生的影响均与一次执行 ...
- Spring Boot 实现接口幂等性的 4 种方案
Java派 2023-02-17 09:00 发表于湖南 Java派 专注Java相关技术栈:Spring全家筒.Docker.k8s.Mysql.集群.微服务.中间件等知识. 18篇原创内容 公众号 ...
- Spring Boot连接多个Redis库配置方案及代码示例
配置类①: import com.zxl.common.utils.json.FastJsonRedisSerializer; import org.springframework.beans.fac ...
- Spring Boot 接口幂等性实现的 4 种方案!
来源:mydlq.club/article/94/ 一.什么是幂等性 二.什么是接口幂等性 三.为什么需要实现幂等性 四.引入幂等性后对系统的影响 五.Restful API 接口的幂等性 六.如何实 ...
- 视频教程-spring cloud与spring boot实战视频教程-Java
spring cloud与spring boot实战视频教程 从事互联网开发架构11年,曾在阿里任职java架构师,擅长SOA.分布式搜索的架构设计; 精于JVM.TCP.CPU.缓存.磁盘.网络等大 ...
- 如何让Spring Boot 的配置 “动” 起来?
前言 对于微服务而言配置本地化是个很大的鸡肋,不可能每次需要改个配置都要重新把服务重新启动一遍,因此最终的解决方案都是将配置外部化,托管在一个平台上达到不用重启服务即可一次修改多处生效的目的. 但是对 ...
- 居然仅用浏览器,就完成了Spring Boot应用的开发与部署!
点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! 最近有幸试用了一下阿里云的一个新产品:云开发平台,体验一 ...
- eclipse创建springboot项目_创建一个 Spring Boot 项目,你会几种方法?
我最早是 2016 年底开始写 Spring Boot 相关的博客,当时使用的版本还是 1.4.x ,文章发表在 CSDN 上,阅读量最大的一篇有 42W+,如下图: 2017 年由于种种原因,就没有 ...
最新文章
- python官网下载好慢1001python官网下载好慢-Python|时间复杂度测试
- 通过java.util.concurrent写多线程程序
- VTK修炼之道69:体绘制讨论_颜色传输函数
- MyBatis总结五:#{}和${}的用法和区别
- FreeModbus源码获取
- hp ux安装oracle 11g,HP UX安装oracle 11g asm扫不到盘
- SVM 超平面方程
- Docker容器的资源使用限制
- 30岁,我从前端转型管理成功了
- 什么是自媒体知识付费
- Ubiquitous Religions 宗教信仰
- MapBoxGL.JS 画圆 (半径以米或千米为单位) 实现跟随地图缩放而缩放
- Spring资源抽象Resource
- Kubernetes访问报错: No route to host
- 选择美国虚拟主机时要考虑的事项
- QQ好友分组模拟小程序
- 计算机网络的安全性在哪里,计算机网络面临的安全性威胁可分为哪两类分别包含..._安全工程师_帮考网...
- unity3d-代码控制游戏角色控制器移动
- 美容门店信息化管理系统该如何搭建?不妨参考一下百数
- 基于Strongswan的IPSec部署
热门文章
- 斯伦贝谢好进吗_你知道斯伦贝谢中国软件家族吗?请进!
- java 空数组如何判断,java判断数组是否为空
- 3704对象关闭时_运行时出现了“对象关闭时不允许操作”实时错误3704,请问大家怎么改呢?...
- 关于MySQL中日期的使用
- 电脑删掉,如果彻底删除电脑文件,应该怎么做?
- Java拼接字符串(包括空字符串)的多种方法
- Android 9.0版本修改Launcher图标默认为圆形
- Linux文件(夹)操作命令
- 初勘数据处理之预测算法(随机森林random forest)附matlab源码
- linux多线程之条件变量