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 并存实现方案相关推荐

  1. Spring Boot 实现接口幂等性的 4 种方案!还有谁不会?

    点击关注公众号,Java干货及时送达 作者:超级小豆丁 链接:mydlq.club/article/94 一.什么是幂等性 幂等是一个数学与计算机学概念,在数学中某一元运算为幂等时,其作用在任一元素两 ...

  2. Spring Boot 实现接口幂等性的 4 种方案作者:小小怪下士

    一.什么是幂等性 幂等是一个数学与计算机学概念,在数学中某一元运算为幂等时,其作用在任一元素两次后会和其作用一次的结果相同.在计算机中编程中,一个幂等操作的特点是其任意多次执行所产生的影响均与一次执行 ...

  3. Spring Boot 实现接口幂等性的 4 种方案

    Java派 2023-02-17 09:00 发表于湖南 Java派 专注Java相关技术栈:Spring全家筒.Docker.k8s.Mysql.集群.微服务.中间件等知识. 18篇原创内容 公众号 ...

  4. Spring Boot连接多个Redis库配置方案及代码示例

    配置类①: import com.zxl.common.utils.json.FastJsonRedisSerializer; import org.springframework.beans.fac ...

  5. Spring Boot 接口幂等性实现的 4 种方案!

    来源:mydlq.club/article/94/ 一.什么是幂等性 二.什么是接口幂等性 三.为什么需要实现幂等性 四.引入幂等性后对系统的影响 五.Restful API 接口的幂等性 六.如何实 ...

  6. 视频教程-spring cloud与spring boot实战视频教程-Java

    spring cloud与spring boot实战视频教程 从事互联网开发架构11年,曾在阿里任职java架构师,擅长SOA.分布式搜索的架构设计; 精于JVM.TCP.CPU.缓存.磁盘.网络等大 ...

  7. 如何让Spring Boot 的配置 “动” 起来?

    前言 对于微服务而言配置本地化是个很大的鸡肋,不可能每次需要改个配置都要重新把服务重新启动一遍,因此最终的解决方案都是将配置外部化,托管在一个平台上达到不用重启服务即可一次修改多处生效的目的. 但是对 ...

  8. 居然仅用浏览器,就完成了Spring Boot应用的开发与部署!

    点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! 最近有幸试用了一下阿里云的一个新产品:云开发平台,体验一 ...

  9. eclipse创建springboot项目_创建一个 Spring Boot 项目,你会几种方法?

    我最早是 2016 年底开始写 Spring Boot 相关的博客,当时使用的版本还是 1.4.x ,文章发表在 CSDN 上,阅读量最大的一篇有 42W+,如下图: 2017 年由于种种原因,就没有 ...

最新文章

  1. python官网下载好慢1001python官网下载好慢-Python|时间复杂度测试
  2. 通过java.util.concurrent写多线程程序
  3. VTK修炼之道69:体绘制讨论_颜色传输函数
  4. MyBatis总结五:#{}和${}的用法和区别
  5. FreeModbus源码获取
  6. hp ux安装oracle 11g,HP UX安装oracle 11g asm扫不到盘
  7. SVM 超平面方程
  8. Docker容器的资源使用限制
  9. 30岁,我从前端转型管理成功了
  10. 什么是自媒体知识付费
  11. Ubiquitous Religions 宗教信仰
  12. MapBoxGL.JS 画圆 (半径以米或千米为单位) 实现跟随地图缩放而缩放
  13. Spring资源抽象Resource
  14. Kubernetes访问报错: No route to host
  15. 选择美国虚拟主机时要考虑的事项
  16. QQ好友分组模拟小程序
  17. 计算机网络的安全性在哪里,计算机网络面临的安全性威胁可分为哪两类分别包含..._安全工程师_帮考网...
  18. unity3d-代码控制游戏角色控制器移动
  19. 美容门店信息化管理系统该如何搭建?不妨参考一下百数
  20. 基于Strongswan的IPSec部署

热门文章

  1. 斯伦贝谢好进吗_你知道斯伦贝谢中国软件家族吗?请进!
  2. java 空数组如何判断,java判断数组是否为空
  3. 3704对象关闭时_运行时出现了“对象关闭时不允许操作”实时错误3704,请问大家怎么改呢?...
  4. 关于MySQL中日期的使用
  5. 电脑删掉,如果彻底删除电脑文件,应该怎么做?
  6. Java拼接字符串(包括空字符串)的多种方法
  7. Android 9.0版本修改Launcher图标默认为圆形
  8. Linux文件(夹)操作命令
  9. 初勘数据处理之预测算法(随机森林random forest)附matlab源码
  10. linux多线程之条件变量