一般来说,不会,因为有心跳检测和重连机制。

断线重连机制是ActiveMQ的高可用性具体体现之一。

具体就是使用failover方式,使得连接断开之后,可以不断的重试连接到一个或多个brokerURL。

例如:failover:(tcp://127.0.0.1:61616) ,这里可以使用多个url。

默认情况下,如果client与broker直接的connection断开,则client会新起一个线程,

不断的从url参数中获取一个url来重试连接。

这个机制对于在容器中使用的connection木有问题。

activemq-core源码的test中也有多个client与broker之间断开重连10次的例子:

可以测试如下:

1、通过命令行启动一个broker

2、在java中创建一个connection,添加一个TransportListener,使用如下代码来根据连接断开与重连。

@Override

public void transportInterupted() {

System.out.println("===>> 断开");

}

@Override

public void transportResumed() {

System.out.println("===>> 重连");

}

3、运行程序

4、停止broker,再启动broker

5、观察到断开与重连

6、再停止broker,发现程序自动退出。

程序退出不再重连的原因在于重连的线程是daemon的,连接出错以后,其他线程都退出了,这个线程也随即被销毁掉了。

官方修复过一次,在ActiveMQ Connection Executor上设置了daemon=false,但是这个线程不一定被创建出来。所以bug依然在。

修复的方法很简单:

reconnectTaskFactory = new TaskRunnerFactory();

reconnectTaskFactory.setDaemon(false); // to set daemon=false by kimmking

reconnectTaskFactory.init();

把重连的线程设置成daemon=false就成。

然后再按照上面的步骤来执行,发现多次重启broker,都是可以自动重连的。

---------------------

作者:kimmking

来源:CSDN

版权声明:本文为博主原创文章,转载请附上博文链接!

java activemq 断线_activemq 长时间没有消息client会断开吗?相关推荐

  1. 要学完Java大概需要多长时间

    学习Java是有一定技巧和方法的,钻牛角尖的去学习它,只能让你感觉到费神费力,最终陷入到无穷无尽的细枝末节之中.然后渐渐的消磨掉你的耐心,直到你放弃. 其实学习任何东西都一样,包括学习Java.刚开始 ...

  2. 【Python】SQLAlchemy长时间未请求,数据库连接断开的原因、解决方案

    这个问题好像和长时间连接数据库但不打开网页时,报错lost connection是一个原因 问题: 写了一个基于apscheduler的定时任务,里面的任务使用了sqlalchemy,大致如下: sc ...

  3. .net跨防火墙链接oracle连接池链接长时间无通讯数据被断开后报错问题解决

    环境: .net 4.0以上使用Oracle.ManagedDataAccess组件链接oracle数据库,应用程序与数据库之间存在硬件防火墙. 症状:应用程序启动后正常访问,如果出现长时间无数据库请 ...

  4. 生产环境Redis连接,长时间无响应被服务器断开问题

    上个月线上生产环境有几个接口出现异常响应,查看生产日志后发现,如下错误 线上Redis客户端使用的是SpringBoot默认的Lettuce客户端,并且没有指定连接池,connection reset ...

  5. java activemq 断线_java - 防止ActiveMQ重新连接失败时自动退出 - SO中文参考 - www.soinside.com...

    我有一个小型的spring-boot应用程序,该应用程序连接到ActiveMQ上的一个或多个主题,这些主题在启动时在应用程序的application.properties文件中设置-然后将这些消息发送 ...

  6. 零基础,自学JAVA编程需要多长时间才能学完?

    现在不少朋友在问:零基础学Java需要花多少时间?在你开始学一门技术之前,你也得进行各个方面的考察,特别是时间方面你得仔细的思考,因为时间短,这是人之喜见的,要是时间长,那么你就会产生焦虑.不安.自我 ...

  7. 自学Java大概需要多长时间可以入门呢?

    其实学java一般要多久?因人而异,例如一个零基础的小白自学java,每天学习8个小时来算,而且在有学习资料的基础上,每天学习,从零到找到工作,起码要半年起步,而且还要有项目经验,否则是不会有公司要你 ...

  8. 吃一堑长一智!java基础自学多长时间

    前言: 都说学历是敲门砖,是一点都没错,即使是在重技术轻学历的互联网企业,面试官对于学历越高的程序员初印象会更好,面试也会更顺利,而大部分专科学历的程序员,除非有过硬的技术,否则想要进入一二线互联网公 ...

  9. java每隔多长时间执行一次_crontab中如何实现每隔多少天执行一次脚本

    crontab中如何实现每隔多少天执行一次脚本  我来答 分享 2个回答 奶油菠萝包sky 来自百度知道认证团队 2018-04-08 1. # 下午6点到早上6点,每隔15分钟执行一次脚本 0,1 ...

最新文章

  1. 乾坤合一~Linux设备驱动之终端设备驱动
  2. demo:a spreadsheet-like application
  3. linux 下mongo 基础配置
  4. 计算机远程桌面自动关闭,windows10重启之后自动关闭远程桌面是怎么回事
  5. 送书 | 222Beta多样性限制性排序CPCoA/CCA/RDA/LDA
  6. 1.6 编程基础之一维数组 03 计算书费 python
  7. BZOJ 1071组队
  8. 90%代码如何实现自动迁移到鲲鹏平台?
  9. 开奖|八大福利,康康你中奖了没?
  10. 招聘 集群研发工程师
  11. Firebug Console API
  12. 【Linux】系统移植篇一--linux系统移植导学
  13. 陈纪修老师《数学分析》 第04章:微分 笔记
  14. C语言 之 if 语句
  15. PyCharm 下载/上传gitlab 代码
  16. Unity获取系统信息SystemInfo(CPU、显卡、操作系统等信息)
  17. [翻译]Billy Belceb 病毒编写教程for Win32
  18. 西华大学计算机科学与技术学院,王秀华 - 西华大学 - 计算机与软件工程学院
  19. Flutter 淘宝 App,支持 iOS、Android
  20. 第二章:大数据文件系统之HDFS-CSDN就业班-专题视频课程

热门文章

  1. mysql数据库表字段使用DESC等关键字报错及解决方法
  2. 关于如何取消访问https时的提示:“此网站的安全证书存在问题”的解决方法
  3. eslint 验证vue文件 报错 unexpected token =解决方法
  4. SSH启动失败解决方法
  5. vue本地静态图片的路径问题解决方案
  6. 如何在Java项目中查找未使用/无效的代码
  7. 在Java中从字符串中删除空格
  8. 使用“ for”循环遍历字典
  9. 2020-12-02
  10. android edittext drawable,android – 在事件上显示复合drawable到EditText