Mule: Quelle est la différence entre un routeur et une diffusion groupée liste-routeur statique destinataire?
Question
Je ne peux pas vraiment voir une différence entre un routeur et une multicasting liste-routeur statique destinataire. Pourquoi devrais-je utiliser un sur l'autre?
Selon Guide de l'utilisateur mule-2.x
Liste des destinataires
le routeur liste des destinataires peut être utilisé d'envoyer le même événement à plusieurs critères d'évaluation sur le même point final ou à mettre en oeuvre le comportement de routage à glissement où la prochaine destination de l'événement est déterminé à partir des propriétés de l'événement ou la charge utile. Mule fournit un résumé la mise en œuvre de la liste des destinataires org.mule.routing.outbound.AbstractRecipientList qui fournit une base de thread-safe pour implémentations spécialisées. Mule aussi fournit une liste des destinataires statique qui prend une liste de points d'extrémité configurés de l'événement en cours ou statiquement déclaré sur le point de terminaison.
<outbound>
<static-recipient-list-router>
<payload-type-filter expectedType="javax.jms.Message"/>
<recipients>
<spring:value="jms://orders.queue"/>
<spring:value="jms://tracking.queue"/>
</recipients>
</static-recipient-list-router> </outbound>
Multicast Router
Le routeur Multicast peut être utilisé pour envoyer le même événement sur plusieurs critères d'évaluation. Lorsque vous utilisez ce soin routeur doivent être prises pour configurer la bonne transformateurs sur les points d'extrémité à gérer le type de source d'événement.
<outbound>
<multicasting-router>
<jms:endpoint queue="test.queue"
transformer-refs="StringToJmsMessage"/>
<http:endpoint host="10.192.111.11"
transformer-refs="StringToHttpClientRequest"/>
<tcp:endpoint host="10.192.111.12"
transformer-refs="StringToByteArray"/>
<payload-type-filter expectedType="java.lang.String"/>
</multicasting-router> </outbound>
Rappelez-vous que des précautions doivent être prises pour veiller à ce que le message routé est transformé en un format que la point final comprend.
La solution
Droit de la bouche du cheval ( Mule en action , par David Dossot, John D'Emic , p. 98..100)
Le routeur statique-liste des destinataires vous permet d'envoyer simultanément le même message à plusieurs points de terminaison. Vous utilisez généralement une liste des destinataires de statique lorsque chaque terminal utilise le même moyen de transport. Cela est souvent le cas avec les terminaux VM et JMS.
Utilisez les listes de destinataires de statiques lors de l'envoi du même message à l'aide de terminaux transport identiques
Le routeur est similaire à multicasting la liste des destinataires de statique en ce qu'il envoie simultanément le même message à travers un ensemble de terminaux sortants. La différence est que le routeur est utilisé lorsque multicasting la liste des terminaux contient différents types de transport.
Utilisez le routeur multicasting lors de l'envoi du même message aux terminaux utilisant différents moyens de transport
Autres conseils
Voilà comment je comprends ces:
Le routeur liste statique destinataire envoie la charge utile à chaque destinataire dans l'ordre qu'ils sont répertoriés. Cela vous donne la possibilité de modifier la charge utile avant de passer au prochain point final. Cela vous donne également la possibilité de traitement d'arrêt en cas d'erreur.
Le routeur multidiffusion envoie la même charge utile à tous les critères d'évaluation en même temps. Vous ne serez pas en mesure de changer la charge utile pour chaque point final. Vous ne serez pas en mesure d'arrêter d'autres paramètres de traitement si l'un des points de terminaison échouent.