2017-11-28 2 views
0

this answerによれば、単一のアドレスであっても、 "tcp"転送で "フェイルオーバー"プロトコルを使用することによるメリットがあります。これに加えてActiveMQの "vm:"トランスポートで "failover:"プロトコルを使用することに利点はありますか?

ActiveMQ documentation、以下に(強調鉱山)を適用する:

JMSブローカーがダウンした場合、ActiveMQのが自動的にフェールオーバーを使用して、使用可能なJMSブローカーに再接続することができる:プロトコル。これは自動的に再接続するだけでなく、は一時的な宛先、セッション、プロデューサ、そして最も重要なのはコンシューマも再開します。

これは "vm"トランスポートを使用する場合にも当てはまりますか?

キューの消費者がメッセージを受け取るのをやめている間にキューがいっぱいになっている間に頻繁に問題が発生していますが、これについての修正はまだ見つかりませんでした。これはActiveMQ v5.6.0にあります。現時点ではv5.14.5にアップグレードしていますが、追加のオプションも検討したいと考えています。

ActiveMQConnectionFactoryのための当社の現在のSpring構成は次のようになります。vm://localhostからfailover:(vm://localhost)にURLを変更

<bean id="jmsConnectionFactory" class="org.apache.activemq.ActiveMQConnectionFactory" 
    depends-on="amqEmbeddedBroker"> 
    <property name="brokerURL" value="vm://localhost" /> 
    <property name="watchTopicAdvisories" value="false" /> 
</bean> 

でしょうすなわち、何らかの理由で閉鎖されている接続に対して安全-守って、この場合のいずれかの利益を提供? failover:の部分を含むようにURLを変更すると、FailoverTransportというインスタンスが作成されていることがわかりますが、vmの場合はどのようなメリットもありますか?

答えて

1

フェールオーバーは、接続が失敗した場合に再接続を試みます。したがって、通常は接続障害がクラッシュする操作を行っている場合は、例外は表示されませんが、自動的に再接続を試みます。したがって、メモリブローカが死んでしまうと、クライアントはサイレント状態になり、再接続しようとするログを発行することになります。

VMの接続はネットワークの問題で失敗しないため、さらに調査する必要があります。しかし、アップグレードは最初のステップのようです。

関連する問題