Spring集成或Spring Cloud数据流

Swo*_*ish 5 spring-integration microservices spring-cloud-dataflow

我正在将我的一些应用程序移至微服务。一个示例服务是RSS搜寻器,它使用Spring Integration将项目发送到Kafka。我还看到有Spring Cloud Data Flow,它在后台使用了Spring Integration和Spring Batch。

如果我使用Spring Cloud Data Flow,我会在每个微服务中使用它还是将其用作微服务之间的编排?

我正在尝试了解引入Spring Cloud Data Flow的好处,而不是使用Spring Integration保持微服务尽可能轻便。

任何意见,将不胜感激。

小智 6

基于SI的“ RSS搜寻器”服务可以打包为Spring Cloud Stream应用程序。完成此操作后,“ RSS搜寻器”将变成独立的事件驱动微服务,该服务可以自动与Kafka,Rabbit或其他代理对话(取决于类路径中的绑定器实现)。同一应用是可移植的工作负载,可以在任何公共或私有云平台上运行。

一旦有了“ n”个这样的独立应用程序,就需要一个更高层次的编排层来将应用程序组成一个统一的数据管道。Spring Cloud Data Flow可以帮助您。您可以使用SCDF的DSL建立类似以下的管道。

流创建foo --definition“ rss-crawler |过滤器|转换| cas​​sandra”

在这里,四个应用程序一起组成一个数据管道。他们每个人都是一个Spring Cloud Stream应用程序,可以独立开发和隔离测试。最后,SCDF会将应用程序作为本地应用程序部署到诸如Cloud Foundry或Kubernetes的目标平台上。

希望这进一步澄清。

  • 这个答案比我之前阅读的所有文档更好地描述了“Spring Cloud Data Flow”。我真的不明白这是为了什么,我是否需要它。直到这个帖子。谢谢! (2认同)

Art*_*lan 5

是的,您可以在微服务和数据流中使用 Spring Integration 来连接和编排它们。这只是 Spring Cloud Data Flow 使用 Spring Integration 和 Spring Batch 作为其内部逻辑的副作用。

在这张图中,您可能会错过中间的 Spring Cloud Stream 级别的事实: https: //cloud.spring.io/spring-cloud-stream/