Scénario : Distribuer les messages aux endpoints récepteurs selon la méthode Round Robin

Composants Mediation Talend ESB Guide de référence

EnrichVersion
6.1
EnrichProdName
Talend Open Studio for ESB
Talend Real-Time Big Data Platform
Talend Data Fabric
Talend ESB
Talend MDM Platform
Talend Data Services Platform
task
Création et développement
EnrichPlatform
Studio Talend

Dans ce scénario, un composant cLoadBalancer est utilisé pour distribuer également quatre messages à deux endpoints récepteurs, selon la méthode de répartition de charge Round Robin.

Déposer et relier les composants

Ce scénario requiert un composant cFile pour envoyer les messages, un cLoadBalancer pour distribuer également les messages vers deux endpoints récepteurs, deux cJavaDSLProcessor pour définir les URIs des récepteurs, deux cMessagingEndpoint pour récupérer les messages routés vers les deux récepteurs et deux composants cProcessor pour afficher l'effet de la répartition de charge Round Robin.

  1. Dans la famille Connectivity de la Palette, déposez un composant cFile et deux cMessagingEndpoint dans l'espace de modélisation graphique et nommez-les selon leur rôle dans la Route : Sender, Receiver_A et Receiver_B, respectivement.

  2. De la famille Routing, déposez un composant cLoadBalancer dans l'espace de modélisation graphique et nommez-le Load_balancer.

  3. De la famille Core, déposez deux cJavaDSLProcessor dans l'espace de modélisation graphique et nommez-les selon leur rôle dans la Route : To_Receiver_A et To_Receiver_B, respectivement.

  4. De la famille Custom, déposez deux composants cProcessor dans l'espace de modélisation graphique et nommez-les selon leur rôle au sein de la Route : Monitor_A et Monitor_B respectivement.

  5. Reliez le cFile au cLoadBalancer à l'aide d'un lien Row > Route.

  6. Reliez le cLoadBalancer aux deux cJavaDSLProcessor à l'aide de liens Row > Load Balance.

  7. Reliez chaque cMessagingEndpoint aucProcessor correspondant à l'aide d'un lien Row > Route.

Configurer les composants et les connexions

  1. Double-cliquez sur le composant cFile pour ouvrir sa vue Basic settings.

  2. Dans le champ Path, spécifiez le chemin d'accès au message source.

  3. Dans la liste Encoding, sélectionnez le type d'encodage de vos fichiers de messages. Laissez les autres paramètres tels qu'ils sont.

  4. Double-cliquez sur le cLoadBalancer pour ouvrir sa vue Basic settings et sélectionnez la méthode de répartition des charges que vous souhaitez utiliser, dans la liste Strategy. Dans ce scénario, sélectionnez la méthode par défaut, Round robin.

  5. Double-cliquez sur le composant cJavaDSLProcessor nommé To_Receiver_A pour ouvrir sa vue Basic settings et saisissez l'URI du premier récepteur entre guillemets doubles dans la zone Code, direct:a dans cet exemple.

    Répétez cette étape pour définir l'URI de l'autre récepteur, direct:b, dans le composant cJavaDSLProcessor nommé To_Receiver_B.

  6. Double-cliquez sur le cMessagingEndpoint nommé Receiver_A pour ouvrir sa vue Basic settings et saisissez l'URI du premier récepteur entre guillemets doubles dans le champ URI, direct:a dans cet exemple.

    Répétez cette étape pour définir l'URI de l'autre récepteur, direct:b, dans le cMessagingEndpoint nommé Receiver_B.

  7. Double-cliquez sur le composant cProcessor nommé Monitor_A pour ouvrir sa vue Basic settings et personnalisez le code dans la zone Code pour afficher le nom des fichiers des messages routés vers Receiver_A dans la console :

    System.out.println("Message on Receiver_A: "+
    exchange.getIn().getHeader("CamelFileName"));

    Répétez cette étape pour personnaliser le code dans le composant cProcessor nommé Monitor_B pour afficher le nom des fichiers des messages routés vers Receiver_B dans la console.

  8. Appuyez sur Ctrl+S pour sauvegarder votre Route.

Visualiser le code et exécuter la Route

  1. Cliquez sur l'onglet Code au bas de l'espace de modélisation graphique pour visualiser le code généré :

    Comme affiché ci-dessus, lorsque les messages sont routés de (from) l'endpoint source vers (.to) les endpoints de destination, le routage répartissant les charges est implémenté selon la méthode .roundRobin() par le cLoadBalancer_1.

  2. Appuyez sur F6 pour exécuter la Route.

    Résultat : Des quatre messages de l'émetteur, deux sont routés vers Receiver_A et deux sont routés vers Receiver_B à l'aide de la méthode Round Robin.