ActiveMQ統合されたspringbootプロジェクトクラスターの高可用性が無効です、起動に失敗しました

ZooKeeperとLevelDBに基づいてActiveMQクラスターを構築するには、https: //www.cnblogs.com/cac2020/p/9428255.html構成の記事を参照してください

最初はスムーズに進み、メッセージは正常に消費され、コンソールを開くことができました。クラスターの高可用性をシミュレートするために、マスターノードは均一に強制終了されました。:再び異例のノードを開始します
| org.apache.activemq.broker.BrokerService | LevelDBのIOExceptionハンドラにjava.io.IOExceptionが:. COM /グーグル/共通/ utilに/並行/内部/ InternalFutureFailureAccessいいえIOExceptionHandler登録、IO例外無視
ここに画像の説明を挿入
とをインターネットlibパッケージを削除するために、コメントログ設定を正常に開始できません。長い間トラブルが発生し、解決できませんでしたが、その後、3ノード下のleveldbディレクトリをすべて削除しました。zkノードとactivemqノードを再起動します。正常に起動できます。
ここに画像の説明を挿入

–その後の更新
クラスターの高可用性を検証するプロセスで奇妙な問題を発見しました。クラスターの関係を構成した後、マスターブローカーを強制終了しようとします。自動的に選択がトリガーされ、新しいマスターを再選出できます。サービスを提供します。しかし、プロジェクトにアクセスして同じ操作を実行している限り、それを選択することはできません。後で、このエラーが常に報告されていることがわかりました:java.io.IOException:
com / google / common / util / concurrent / internal / InternalFutureFailureAccess

通常の状況:
ここに画像の説明を挿入
マスターノードを停止する
ここに画像の説明を挿入
と、マスターが正常に選出されていることがわかります。これは良好です。

SpringBootプロジェクトにアクセスすると

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

解決策はありません
。1文のみLevelDBは非推奨になり、サポートされなくなりました。ActiveMQの使用についてはKahaDBに切り替えてください(LevelDBは非推奨になり、サポートされなくなりました。ActiveMQの使用についてはKahaDBに切り替えてください)

Activemqはバージョン5.15.11を使用しますが、それより低いバージョンではこの問題が発生しない可能性があります。

おすすめ

転載: blog.csdn.net/huangdi1309/article/details/108226333