springboot activemq 连接池

踩过了才知道有坑,很久之前开发了一个程序,跑了快半年了,往ActiveMQ送数据。

最近发现,把MQ给连死了,每分钟五千条数据,造了五千个连接(TIME_WAIT)。

之前开发没有深究,随便百度了一下,网上基本都是这样的套路。spring.activemq.pool.enabled=false时,每发送一条数据创建一个连接。。。。。


 
  1. spring.activemq.broker-url=tcp://127.0.0.1:61616

  2. spring.activemq.in-memory=false

  3. spring.activemq.pool.enabled=false

 

从坑里爬起来,必须搞连接池。


 
  1. spring.activemq.broker-url=tcp://127.0.0.1:61616

  2. spring.activemq.in-memory=false

  3. #true表示使用连接池

  4. spring.activemq.pool.enabled=true

  5. #连接池最大连接数

  6. spring.activemq.pool.max-connections=5

  7. #空闲的连接过期时间,默认为30秒

  8. spring.activemq.pool.idle-timeout=30000

  9. #强制的连接过期时间,与idleTimeout的区别在于:idleTimeout是在连接空闲一段时间失效,而expiryTimeout不管当前连接的情况,只要达到指定时间就失效。默认为0,never

  10. spring.activemq.pool.expiry-timeout=0

pom.xml也要加入依赖包,否则启动报JmsMessagingTemplate注入失败 。


 
  1. <dependency>

  2. <groupId>org.apache.activemq</groupId>

  3. <artifactId>activemq-pool</artifactId>

  4. </dependency>

完美解决。

posted @ 2019-08-08 14:38  海尚书  阅读(386)  评论(0编辑  收藏  举报