2017-04-26 12 views
0

Je cherche des conseils sur la configuration d'un flux de flux de données Spring pour un cas d'utilisation spécifique.Flux de données de printemps avec 2 sources alimentant un processeur/récepteur

Mon cas d'utilisation:

J'ai 2 SGBDR et je dois comparer les résultats des requêtes exécutées sur chacun. Les requêtes doivent être exécutées à peu près simultanément. En fonction du résultat de la comparaison, je devrais être en mesure d'envoyer un e-mail via une application personnalisée de messagerie électronique que j'ai créée.

J'imagine le diagramme de flux pour ressembler à quelque chose comme ça (désolé pour la peinture): enter image description here

Le problème est que SDF n'a pas, à ma connaissance, permettre à un flux de composé avec 2 sources. Il me semble que quelque chose comme ça devrait être possible sans trop pousser les limites du cadre. Je cherche des réponses qui offrent une bonne approche de ce scénario tout en travaillant dans le cadre du FSD. J'utilise Kafka comme courtier de messages et le serveur de flux de données utilise mysql pour conserver les informations de flux.

J'ai envisagé de créer une application Source personnalisée qui interroge deux sources de données et envoie les messages sur le canal de sortie. Cela éliminerait mon besoin de 2 sources, mais il semblerait que cela nécessiterait une grande quantité de personnalisation de l'application source jdbc.

Merci d'avance.

Répondre

4

Je n'ai pas vraiment essayé cela, mais vous devriez pouvoir utiliser des destinations nommées pour y parvenir. Jetez un coup d'oeil ici: http://docs.spring.io/spring-cloud-dataflow/docs/current-SNAPSHOT/reference/htmlsingle/#spring-cloud-dataflow-stream-advanced

stream create --name jdbc1 --definition "jdbc > :dbSource"

stream create --name jdbc2 --definition "jdbc > :dbSource"

stream create --name processor --definition ":dbSource > aggregator | sink"

+0

Merci! Implémenté ceci et fait ce que je voulais. Je vais bientôt poser une autre question sur la détermination de la source d'un message dans une destination nommée - au cas où vous auriez un aperçu là-bas. –