ActiveMQ集成springboot项目集群高可用无效,启动失败

基于ZooKeeper和LevelDB搭建ActiveMQ集群,参考文章https://www.cnblogs.com/cac2020/p/9428255.html 配置。

刚开始还是很顺利的,消息正常消费,控制台可以打开。 为了模拟集群高可用,统一kill掉了其中的master节点。 再次启动该节点发现异常:
No IOExceptionHandler registered, ignoring IO exception | org.apache.activemq.broker.BrokerService | LevelDB IOException handler. java.io.IOException: com/google/common/util/concurrent/internal/InternalFutureFailureAccess
在这里插入图片描述
网上说要删除lib包,注释日志配置都无法正常启动。折腾了很久都无法解决,后来把3个节点下的leveldb目录全部删掉。重启zk和activemq节点,可以正常启动。
在这里插入图片描述

– 后续更新
在验证集群高可用过程中发现一个奇怪的问题,集群关系配置好后,我尝试去杀掉master broker它会自动触发选举,也能够重新选出一个新的master来提供服务。 但是只要我接入项目,同样的操作,它就选举不出来,后面发现一直报这个错误: java.io.IOException:
com/google/common/util/concurrent/internal/InternalFutureFailureAccess

正常情况:
在这里插入图片描述
当我停掉这个master节点后
在这里插入图片描述
可以看到能够正常选举出master,很好。

当我接入spring boot项目后

spring:
  activemq:
    #    broker-url: tcp://192.168.255.177:61616
    user: admin
    password: admin
    broker-url: failover:(tcp://192.168.255.176:61616,tcp://192.168.255.177:61617,tcp://192.168.255.178:61618)

在这里插入图片描述
failover失败转移无效,这就选举不出来。。。
在这里插入图片描述
节点启动失败:

B IOException handler.
java.io.IOException: com/google/common/util/concurrent/internal/InternalFutureFailureAccess
	at org.apache.activemq.util.IOExceptionSupport.create(IOExceptionSupport.java:40)[activemq-client-5.15.11.jar:5.15.11]
	at org.apache.activemq.leveldb.LevelDBClient.might_fail(LevelDBClient.scala:552)[activemq-leveldb-store-5.15.11.jar:5.15.11]
	at org.apache.activemq.leveldb.LevelDBClient.replay_init(LevelDBClient.scala:667)[activemq-leveldb-store-5.15.11.jar:5.15.11]
	at org.apache.activemq.leveldb.LevelDBClient.start(LevelDBClient.scala:558)[activemq-leveldb-store-5.15.11.jar:5.15.11]
	at org.apache.activemq.leveldb.DBManager.start(DBManager.scala:648)[activemq-leveldb-store-5.15.11.jar:5.15.11]
	at org.apache.activemq.leveldb.LevelDBStore.doStart(LevelDBStore.scala:312)[activemq-leveldb-store-5.15.11.jar:5.15.11]
	at org.apache.activemq.leveldb.replicated.MasterLevelDBStore.doStart(MasterLevelDBStore.scala:110)[activemq-leveldb-store-5.15.11.jar:5.15.11]

开始以为activemq-client-5.15.11.jar包版本问题,我就把项目也升级到这个版本,但是仍然出错。。。

网上找了很久资料都没有办法解决。看到一篇文章,这个哥们也是遇到一样的问题,还给Apache提了个问题:
https://issues.apache.org/jira/browse/AMQ-7471

没有解决,只给了一句话:
LevelDB is deprecated and no longer supported, please switch to KahaDB for ActiveMQ usage(LevelDB已弃用,不再受支持,请切换至KahaDB以使用ActiveMQ)

activemq使用的是5.15.11版本,可能低版本不会有这个问题。

猜你喜欢

转载自blog.csdn.net/huangdi1309/article/details/108226333