/ / Transfert ActiveMQ d'un courtier local vers un courtier distant [avec une connexion instable] - java-ee, activemq, esb

Transfert ActiveMQ d'un agent local vers un agent distant [avec une connexion instable] - java-ee, activemq, esb

J'ai le problème suivant: J'ai plusieurs sites avec un courtier ActiveMQ local qui est transféré à un courtier distant (dans un centre de données). Cette connexion est souvent instable et tombe plusieurs fois par mois pendant quelques minutes ou quelques heures à la fois.

Les messages doivent donc attendre sur le courtier local si celui-ci n'est pas accessible pour le moment.

J'ai la configuration ActiveMQ suivante:

    <networkConnectors>

<networkConnector uri="static://(tcp://my-remote-broker:61616)"
name="myremotebroker" dynamicOnly="false"
conduitSubscriptions="true"
decreaseNetworkConsumerPriority="false">

<!-- Exclude all destinations by default -->

<excludedDestinations>
<queue physicalName=">" />
<topic physicalName=">" />
</excludedDestinations>

<!-- Only forward these to our connection -->

<staticallyIncludedDestinations>
<topic physicalName="MySpecialTopic"/>
</staticallyIncludedDestinations>
</networkConnector>
</networkConnectors>

Cela transmet les messages du courtier local (sur la rubrique MySpecialTopic) au courtier distant. Cela fonctionne lorsque la connexion est stable.

Cependant, j'ai essayé de désactiver temporairement leconnexion Internet, de sorte que le courtier local a perdu la connexion avec le courtier distant. J'ai alors envoyé un nouveau message, qui a été mis en file d'attente sur le courtier local, mais n'est jamais arrivé sur le courtier distant. même après que le courtier local se soit reconnecté!

Y at-il quelque chose dans la configuration ActiveMQ qui me manque?

Merci!

Réponses:

0 pour la réponse № 1

Vous utilisez un sujet, qui est aléatoire. Cela signifie que l'envoi d'un message alors que la connexion est en panne sera perdu, ce qui est le comportement standard d'un sujet (seuls les abonnés abonnés au moment de l'envoi du message recevront le message). (http://activemq.apache.org/how-does-a-queue-compare-to-a-topic.html)

Vous devez utiliser une file d'attente si vous voulez que la télécommandeConsommateur pour recevoir le message OU devez configurer vos abonnés en abonnés durables pour s’assurer qu’ils recevront des messages à tout moment. (Http://activemq.apache.org/how-do-durable-queues-and-topics-work.html )