我正在构建一个基于Spring的微服务ML管道。 我有一个数据提取服务(当前)从SQL接收数据,这些数据需要由预测服务使用。
普遍的共识是写入应使用kafka / rabbitmq使用基于消息的异步通信。
我不确定的是如何协调这些服务?
我应该使用API网关来调用启动管道的摄取吗?
答案 0 :(得分:3)
通常,您将使用rest端点(Spring Boot)构建一个服务来提取数据。然后,可以在api网关(Zuul,Spring Cloud)后面多次部署此服务,该网关负责路由。这是默认的spring cloud微服务设置。然后,摄取服务可以转换数据并将其生成到RabbitMQ或Kafka。我建议使用Spring Cloud Stream进行与队列的交互,它可以在RabbitMQ和Kafka之上进行抽象,可以使用启动器/绑定器进行配置。
Spring Cloud Dataflow是一种用于编排队列的声明性方法,还负责在多个云服务/平台上进行部署。这也可以使用,但可能会为您的用例增加额外的复杂性。