SpringBoot集成ArtemisMQ,设置动态消息类型

SpringBoot项目集成ArtemisMQ,那么想动态的更换消息类型,怎么办呢?

通过设置org.springframework.jms.support.destination.JmsDestinationAccessor#setDestinationResolver 方法进行设置目的地解析器

  • 将之设置为 BeanFactoryDestinationResolver
     

     

     

  • 默认提供的org.springframework.jms.support.destination.DynamicDestinationResolver 动态解析目的地实现类,只能在启动配置文件配置属性:spring.jms.pub-sub-domain = true/false ;全局使用的属性值

     

     

  • 第三种方式就是重写 org.springframework.jms.support.destination.DynamicDestinationResolver 的解析提供的目的地名称的核心代码了,根据自己提供的名称的规则解析为指定的 队列或者订阅 模式

     

 

ArtemisMQ的性能调优章节,有一句

 

 所以,需要自己进行缓存目标对象(例如,把目的地对象成为Bean单例组件)

 

其中著名一句话,是Spring Jms是反模式

 

 

如果要更改 JmsTemplate.destinationResolver属性,则指需在IOC容器中注册一个 DestinationResolver 接口的实现类即可

 

 



 

ArtemisMQ 官方文档

 

 
posted @ 2020-10-21 00:04  星小梦  阅读(732)  评论(0编辑  收藏  举报