Salut tout et une équipe spécialement printanière!
Comment puis-je fonctionner de pipeline-Spring-nuage avec le flux de printemps dans le style de modèle de programmation de haricot fonctionnel? p>
Par exemple j'ai POM.XML Avec les deux dépendances: p> et disons que je voudrais faire ensuite: p> Je m'attends à ce que je m'attends à mettre en œuvre, comme: p> Alors, lorsque j'utilise httpie pour envoyer une charge utile, comme: P > la fonction de printemps-nuage semble fonctionner correctement et je peux voir le journal attendu: p> même penser si je suis Message de publication via une interface utilisateur Web de gestion de la Rabbitmq, mais comment je peux pipeline de l'une à une autre p> donc ma question liée à Selon la documentation du ressort qui dit que je peux également utiliser le flux de printemps-nuage: wrappers pour @Beans de type Fonction, consommateur et fournisseur, les exposant au monde extérieur comme des critères d'extrémité HTTP et / ou des écouteurs / éditeurs de messages avec Rabbitmq, Kafka, etc., mais je ne peux pas comprendre comment? P> Au moment, malheureusement, Je ne peux que publier manuellement un message à un liant à Spring-Cloud-Stream à l'aide de la source Voir exemple ici , mais c'est bien sûr ce que je veux savoir s'il est possible de éviter avec le printemps, magiquement ... p> Peut-être que quelqu'un me dit quelqu'un (peut-être que Gary Russell, Dave Sawyer, Artem Bilan, Oleg Zhurakousky ou quiconque qui sait): Qu'est-ce que j'ai manqué et comment je dois configurer mon app ou quels accessoires je devrais ajouter mon application.properties, etc. p> merci! p> regarde,
Maksim p> p>
3 Réponses :
Maksim
Ce n'est pas idéal, mais étant donné que nous avons mis en place un support de fonction initial dans le cadre des liants existants, certaines limitations. Je vais expliquer, mais d'abord ici, le code entièrement fonctionnel: p> Il y a un peu d'un missmatch. Sur le côté du flux, nous avons des liants et sur le côté de la fonction que nous avons des adaptateurs. Vous êtes effectivement (avec votre exigence) tente de combler les deux dans un pipeline. Donc. . . P> Regardons d'abord les liants. P> La fonction majuscule est liée à Vous injectez votre application avec vous invoquez Vous envoyez un message au canal d'entrée de la fonction code> majuscule p> li>
ul> Dans l'avenir pour simplifier cela, nous avons simplement besoin de créer une version d'adaptateur Web ressemblant à un liant, alors n'hésitez pas à soulever une demande de fonctionnalité. Mais comme vous pouvez le constater, la solution de contournement actuelle n'est pas tout ce qui impliquait. P> p> entrée code> et
sortie code> fourni par le canal de message Reliures (lapin ou kafka), créant efficacement une pipeline interne
entrée -> majuscule -> sortie code>. Il est également exposé comme point de fin de repos par S-C-Fonction, cependant, la fonction S-C n'a pas accès au pipeline mentionné. En fait, il a en fait sa propre pipeline
demande -> majuscule -> Répondre code>.
Donc, ce que nous devons faire est de combler les deux concepts ensemble et c'est effectivement ce que j'ai fait. p>
Processor code> Liaison qui contient des références aux canaux
majuscule code> est liée à. p> li>
consommez () code> via le repos
http: // localhost: 8080 / consommer / bla code>. p> li>
Hey Oleg Zhurakousky, merci pour vos commentaires! J'ai deux questions: 1) Avons-nous vraiment besoin de processeur dans ce cas? Je pensais que la source serait suffisante au cas où nous n'avions besoin que de mettre des données en pipeline. 2) Avez-vous manqué @enableBinding (processeur.class) ou n'est plus nécessaire? Par exemple, vous avez fourni, je reçois une erreur: Dispatcher n'a aucun abonné pour canal 'Application.Integrationflowcreator.channel # 0'.; exception imbriquée est org.springframework.Integration.MessageDisPatchingException: Dispatcher n'a pas d'abonnés
Oui, la source suffirait. En ce qui concerne AcompteLinding, oui, il n'est pas requis dans le cas ci-dessus, mais vous auriez besoin de la dernière version du flux ou de l'ajout d'acompte
C'est plutôt une question à Oleg Zhurakousky. Serait heureux de répondre à p>
Si j'utilise J'écris uniquement le producteur qui écrira un @bean fournisseur
@service code> classe ou
@Controller code> classe chaque fois qu'un nouveau
pojo code> doit être envoyé à kafka / lapin. p>
fournisseur code> n'expose qu'un
get () code> méthode. p>
Pojo code> à Kafka et une application différente est le consommateur. L'approche fonctionnelle est plus claire pour un
consommateur
@ABHISHEK P>
Vous pouvez utiliser émetteurProcessor code> comme décrit ici . L'exemple fourni utilise le point d'extrémité de repos lors de la source réelle des données, mais comme vous pouvez le constater que cela ne doit pas compteur car tout ce que vous avez à faire est d'appeler
Onnext code> Fonctionnement du
Emiti SterProcessor code> Transmettre votre événement du service. P>
Maksim, si je comprends correctement, vous voulez
http -> fonction (s) -> lapin code> correct?
Bonjour oleg! Oui, je veux juste que je veux juste fournir les définitions de fonctions pour les deux: la fonction de fluide à ressort et le flux de printemps-nuage et de la configuration de Somethe configure le pipeline de flux de données ... donc partout où la fonction de nuage à ressort sera déclenchée par une personne via le repos, il est de la production Transférer à côté du flux de printemps, selon la configuration à l'aide de lapin / Karfka. Pour le moment, j'ai pu avancer les données de fonctionner uniquement manuellement, mais ce serait génial si je ne devrais pas injecter la source et l'utiliser manuellement pour transmettre des données en file d'attente.