ActiveMQ 통합 springboot 프로젝트 클러스터 고 가용성이 유효하지 않음, 시작 실패

ZooKeeper 및 LevelDB를 기반으로 ActiveMQ 클러스터를 구축하려면 https://www.cnblogs.com/cac2020/p/9428255.html 구성 문서를 참조하십시오 .

처음에는 순조롭게 진행되었고 메시지가 정상적으로 사용되었으며 콘솔을 열 수있었습니다. 클러스터의 고 가용성을 시뮬레이션하기 위해 마스터 노드가 균일하게 종료되었습니다. 다시 비정상적인 노드를 시작하려면 :
No IOExceptionHandler Registered, Ignoring IO Exception | org.apache.activemq.broker.BrokerService | LevelDB IOException Handler java.io.IOException :. COM / Google / the Common / util / Concurrent / Internal / InternalFutureFailureAccess
여기에 사진 설명 삽입
는 말했다 인터넷 lib 패키지를 삭제하려면 주석 로그 구성을 정상적으로 시작할 수 없습니다. 오랜 시간 동안 문제를 해결하지 못해서 나중에 3 개 노드 아래의 leveldb 디렉토리를 모두 삭제했습니다. zk 및 activemq 노드를 다시 시작하면 정상적으로 시작할 수 있습니다.
여기에 사진 설명 삽입

– 후속 업데이트
클러스터의 고 가용성을 확인하는 과정에서 이상한 문제를 발견했습니다. 클러스터 관계가 구성된 후 마스터 브로커를 종료하려고합니다. 자동으로 선택을 트리거하고 새 마스터를 다시 선출 할 수 있습니다. 서비스를 제공하다. 그러나 프로젝트에 액세스하여 동일한 작업을 수행하는 한 선택할 수 없습니다. 나중에이 오류가 항상보고 된 것을 발견했습니다. java.io.IOException :
com / google / common / util / concurrent / internal / InternalFutureFailureAccess

정상적인 상황 :
여기에 사진 설명 삽입
마스터 노드를 중지하면 마스터가
여기에 사진 설명 삽입
정상적으로 선출 될 수 있음을 알 수 있습니다.

스프링 부트 프로젝트에 액세스 할 때

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)

여기에 사진 설명 삽입
장애 조치 전송이 유효하지 않으므로 선택할 수 없습니다. . .
여기에 사진 설명 삽입
노드를 시작하지 못했습니다.

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는 더 이상 사용되지 않으며 더 이상 지원되지 않습니다. ActiveMQ 사용을 위해 KahaDB로 전환하십시오 (LevelDB는 더 이상 사용되지 않으며 더 이상 지원되지 않습니다. ActiveMQ 사용을 위해 KahaDB로 전환하십시오)

Activemq는 5.15.11 버전을 사용하며, 하위 버전에서는이 문제가 없을 수 있습니다.

추천

출처blog.csdn.net/huangdi1309/article/details/108226333