18.7. Diverts
Les diverts (redirections) sont des objets configurés dans HornetQ qui aident à redirectionner des messages d'une adresse (vers laquelle le message est dirigé) vers d'autres adresses. Les redirections peuvent être configurées dans des fichiers de configuration de serveur (
standalone.xml
et domain.xml
).
Les diverts peuvent être classifiés en types suivants :
Les diverts peuvent être configurés pour appliquer un
- Exclusive Divert : un message est redirigé vers une nouvelle adresse uniquement et n'est pas dutout renvoyé vers une ancienne adresse
- Non-exclusive Divert : un message continue d'aller vers une ancienne adresse, et une copie de ce message est également envoyée vers la nouvelle adresse. Les redirections non exclusives (non-exclusive diverts) peuvent être utilisées pour diviser les flux de messages.
Transformer
et un filtre optionnel de message. Un filtre optionnel de message ne redirige que des messages qui correspondent au filtre spécifié. Un transforformateur est utilisé pour transformer les messages sous une autre forme. Quand un transformateur est spécifié, tous les messages redirigés sont transformés par le Transformer
.
Un divert ne redirige un message vers une adresse que dans un même serveur. Si vous avez besoin de rediriger un message vers un serveur différent, vous pouvez suivre le modèle décrit ci-dessous :
Vous pouvez combiner des diverts par des ponts pour créer divers routages.
- Rediriger les messages vers un store local et une file d'attente de redirection. Définir un pont qui consomme à partir de cette file d'attente et qui redirige les messages vers une adresse qui se trouve sur un serveur différent.
18.7.1. Exclusive Divert
Un exclusive divert (redirection exclusive) redirige tous les messages d'une ancienne adresse vers une nouvelle adresse. Les messages correspondants ne sont pas redirigés vers l'ancienne adresse. Vous pouvez activer un exclusive divert en configurant l'attribut
exclusive
à true
dans les fichiers de configuration standalone.xml
et domain.xml
du serveur.
L'exemple suivant vous présente un exclusive divert configuré dans les fichiers de configuration du serveur :
<divert name="prices-divert"> <address>jms.topic.priceUpdates</address> <forwarding-address>jms.queue.priceForwarding</forwarding-address> <filter string="office='New York'"/> <transformer-class-name> org.hornetq.jms.example.AddForwardingTimeTransformer </transformer-class-name> <exclusive>true</exclusive> </divert>La liste suivante décrit les attributs utilisés dans l'exemple ci-dessus :
address
: les messages envoyés à cette adresse sont redirigés vers une autre adresseforwarding-address
: les messages sont redirigés vers cette adresse à partir d'une ancienne adressefilter-string
: les messages qui correspondent à la valeurfilter-string
sont redirigés. Tous les autres messages sont redirigés vers l'adresse normaletransformer-class-name
: si vous spécifiez ce paramètre, une transformation aura lieu pour chaque message correspondant. Cela vous permettra de modifier le contenu ou la propriété d'un message avant qu'il soit redirigé.exclusive
: utilisé pour activer ou désactiver un exclusive divert