使用ActiveMQ创建持久主题和订阅者spring boot jms

weixin_38054676 2019-09-12 01:08:39
我需要为ActiveMQ创建一个主题和一个持久的订阅者,我的问题是我不知道在哪里指定它.我能够创建主题并使用消息,但是当我关闭订阅者然后继续发送消息并再次打开订阅者时,它将不会读取它们. 这是我到目前为止: 发送消息: JmsTemplate jmsTemplate = context.getBean(JmsTemplate.class); jmsTemplate.setPubSubDomain(true); jmsTemplate.setDeliveryMode(DeliveryMode.PERSISTENT); jmsTemplate.setDeliveryPersistent(true); jmsTemplate.convertAndSend("venta.topic",venta); 收到邮件: @JmsListener(destination = "venta.topic",id = "comercial",subscription = "venta.topic") public void receiveMessage(Venta venta) { logger.log(Level.INFO, "RECEIVED : {0}",venta); repository.save(venta); } 我已阅读this article,我明白我需要创建持久订阅者. 我也读过spring docs 而且我认为它与DefaultJmsListenerContainerFactory(我没有实现,我使用默认配置)有关,文档显示: @Bean public DefaultJmsListenerContainerFactory jmsListenerContainerFactory() { DefaultJmsListenerContainerFactory factory = new DefaultJmsListenerContainerFactory(); factory.setConnectionFactory(connectionFactory()); factory.setDestinationResolver(destinationResolver()); factory.setConcurrency("3-10"); return factory; } 但我似乎无法找到创建持久会话的位置.我的生产者和我的订阅者都连接到一个独立的activemq二进制文件. 我希望你能提前帮助我.
...全文
85 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
weixin_38097791 2019-09-12
  • 打赏
  • 举报
回复
DefaultJmsListenerContainerFactory应具有唯一的clientId和耐用子.真实设置如下代码: @Bean public DefaultJmsListenerContainerFactory jmsListenerContainerFactory() { DefaultJmsListenerContainerFactory factory = new DefaultJmsListenerContainerFactory(); factory.setConnectionFactory(connectionFactory()); factory.setDestinationResolver(destinationResolver()); factory.setConcurrency("3-10"); factory.setClientID("brokerClientId"); factory.setSubscriptionDurable(true); return factory; }

433

社区成员

发帖
与我相关
我的任务
社区描述
其他技术讨论专区
其他 技术论坛(原bbs)
社区管理员
  • 其他技术讨论专区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧