0

私は初めてactivemqです。activemqの2つのサーバーを構成し、それらをfailoverトランスポートで使用しました。彼らはうまく働いています。つまり、1つのactivemqがダウンした場合、別のアクティブmqがキューを取得します。私の問題は、メインサーバーが起動したときにキューを復元しないことです。メインサーバーが稼働している場合にそれを管理できるような構成またはプロトコルはありますか?消費者はそれに戻る必要があります。

現在、私の構成は次のとおりです。

    <transportConnectors>
                    <transportConnector name="openwire" uri="tcp://0.0.0.0:61616" updateClusterClients="true" rebalanceClusterClients="true"/>
    </transportConnectors>
<networkConnectors>
                <networkConnector uri="static:(tcp://192.168.0.122:61616)"
                networkTTL="3"
                prefetchSize="1"
                decreaseNetworkConsumerPriority="true" />
</networkConnectors>

そして私の接続URIは:

failover:(tcp://${ipaddress.master}:61616,tcp://${ipaddress.backup}:61616)?randomize=false

また、フェイルオーバーが発生した場合にメールを送信して、activemqがダウンしているかどうかを確認したいと思います。

4

2 に答える 2

2

そこで構成したのは、真の HA 展開ではなく、ブローカーのネットワークです。ネットワークに 2 つのブローカーが構成されている場合、それぞれに独自のメッセージ ストアがあり、これには常に部分的なメッセージ セットが含まれます (ブローカーのネットワークの仕組みを参照してください)。

予想される動作は、1 つのブローカーが失敗した場合に、失敗したブローカーが中断したところから (失敗したブローカーが保持していたすべての未配信メッセージと共に) 再開するというものです。そのためには、(できれば共有ストレージ)マスター/スレーブ構成を使用する必要があります。

于 2012-07-02T12:13:46.303 に答える
1

私はそれをしました。そして、誰かが同じ問題を抱えている場合に備えて、解決策を投稿してください。この機能は、activemq 5.6 で利用できます。priorityBackup=true接続 url は、利用可能な場合にプライマリ ノードに戻るようにコンシューマに指示するキーです。

私の新しい接続URIは次のとおりです。

failover:master:61616,tcp://backup:61616)?randomize=false&amp;priorityBackup=true

詳しくはこちらをご覧ください。

于 2012-07-24T13:54:15.997 に答える