1

Je construis une canalisation ML de microservice à base de nuages ​​de printemps. J'ai un service d'intégration de données qui prend (actuellement) des données de SQL, ces données doivent être utilisées par le service de prédiction.Communication entre microservices pour des données volumineuses

Le consensus général est que les écritures doivent utiliser une communication basée sur un message asynchrone utilisant kafka/rabbitmq. Ce dont je ne suis pas sûr, c'est comment orchestrer ces services?

Dois-je utiliser une passerelle API qui appelle l'ingestion qui démarre le pipeline?

+2

Flux de données Spring Cloud: http://cloud.spring.io/spring-cloud-dataflow/? –

+0

Je suis vraiment nouveau à ce sujet. Si j'utilise le flux de données du nuage de printemps, serai-je en mesure d'utiliser les services individuellement? Utiliser un service indépendamment du pipeline de flux de données en utilisant, par exemple, des points de terminaison de repos? –

Répondre

3

Généralement, vous construisiez un service avec des points de terminaison (Spring Boot) pour ingérer les données. Ce service peut ensuite être déployé plusieurs fois derrière une passerelle api (Zuul, Spring Cloud) qui prend soin du routage. Ceci est la configuration par défaut des microservices de nuages ​​de printemps. Le service ingest peut ensuite convertir les données et les produire en un RabbitMQ ou un Kafka. Je recommande d'utiliser Spring Cloud Stream pour l'interaction avec la file d'attente, c'est l'abstraction au dessus de RabbitMQ et Kafka, qui peut être configuré en utilisant des démarreurs/classeurs. Spring Cloud Dataflow est une approche déclarative pour l'orchestration de vos files d'attente et prend également en charge le déploiement sur plusieurs services/plateformes cloud. Cela peut également être utilisé, mais pourrait ajouter une complexité supplémentaire à votre cas d'utilisation.

+0

Merci pour la réponse, c'est très instructif. –