【发布时间】:2021-03-24 23:15:15
【问题描述】:
我目前正在开发一个 Spring Boot 应用程序,它使用 ActiveMQ“经典”与启用 MQTT 的设备进行通信。主要问题是我需要内存中的 ActiveMQ,因为当 Spring Boot 应用程序没有时,发送到主题的所有消息都无法读取,因为主题的 @JmsListener 仅在运行时有效(因为同样是那个时候主题的订阅者)。我可以使用docker-compose 创建一个堆栈并在 ActiveMQ 容器关闭时锁定所有内容,但我不能将它用于我实际正在做的项目中。
那么,有没有办法暴露内存中 ActiveMQ 的端口,或者在 Spring Boot 项目启动时启动 ActiveMQ 守护进程并在 Spring Boot 停止时停止它?
这是application.properties 文件
# Embedded ActiveMQ Configuration Example
spring.activemq.broker-url=vm://embedded?broker.persistent=false,useShutdownHook=false
spring.activemq.close-timeout=15000
spring.activemq.in-memory=true
spring.activemq.non-blocking-redelivery=false
spring.activemq.password=admin
spring.activemq.user=admin
spring.activemq.send-timeout=0
spring.activemq.packages.trust-all=false
spring.activemq.packages.trusted=com.memorynotfound
spring.activemq.pool.block-if-full=true
spring.activemq.pool.block-if-full-timeout=-1
spring.activemq.pool.create-connection-on-startup=true
spring.activemq.pool.enabled=false
spring.activemq.pool.expiry-timeout=0
spring.activemq.pool.idle-timeout=30000
spring.activemq.pool.max-connections=1
spring.activemq.pool.max-sessions-per-connection=500
spring.activemq.pool.reconnect-on-exception=true
spring.activemq.pool.time-between-expiration-check=-1
spring.activemq.pool.use-anonymous-producers=true
【问题讨论】:
-
this 回答你的问题了吗?
标签: java spring-boot activemq