Spring云数据流(SCDF)+ Apache Kafka - 在哪里部署Kafka Brokers?

时间:2017-10-25 12:26:45

标签: java apache-kafka spring-cloud spring-cloud-stream spring-cloud-dataflow

我不确定我是否理解Spring Cloud Data Flow(SCDF)和Apache Kafka Brokers(及其相关的Zookeeper)之间的关系。

我阅读了几篇文档并观看了有关Spring Cloud Data Flow(SCDF)的网络研讨会。我理解在这个框架中不同微服务之间的通信的不同绑定选项(RabbitMQ,Kafka,...)。

我找到了很多关于如何使用Kafka的信息,但没有找到运行/操作的地方。我的假设是否正确,您必须独立于SCDF安装/管理/运营Kafka经纪人(+ Zookeeper)? SCDF"只是"使用Kafka代理进行内部通信,并且 - 可选 - 用于微服务中的业务逻辑(例如,使用Kafka Producer或Consumer API,对吧?

即使我使用像Mesos或Kubernetes这样的框架用于SCDF,Kafka Brokers(+ ZK)仍可以自己运行,也可以在Mesos或Kubernetes或其他地方运行。

SCDF可用于部署与Kafka经纪人通信的Kafka应用程序 - 这可以是Kafka消费者/制作人,Kafka Streams应用程序,甚至是Kafka Connect或KSQL等Kafka生态系统的其他部分。所有这些都可以在SCDF的Spring Boot应用程序/微服务中运行。

这些陈述是否正确,还是我错过了什么?

2 个答案:

答案 0 :(得分:3)

  

SCDF“just”使用Kafka代理进行内部通信,并且 - 可选 - 用于微服务中的业务逻辑(例如,使用Kafka Producer或Consumer API,对吧?

要明确的是,SCDF 不会在内部使用Kafka或任何其他经纪人。应用程序本身在运行时依赖它。这些应用程序专门基于Spring Cloud Stream编程模型。 SCDF简单地将这些应用程序编排成完全一致的数据管道。您可以分别阅读有关编程模型以及它们如何与herehere中的binder实现(代理)交互的更多详细信息。

  

即使我使用像Mesos或Kubernetes这样的框架用于SCDF,Kafka Brokers(+ ZK)仍可以自己运行,也可以在Mesos或Kubernetes或其他地方运行。

是 - 没有任何这些个别系统的托管。预计它们将分别运行和运作。

答案 1 :(得分:1)

是的,您需要管理代理,数据流不会管理或部署您的中间件基础架构,例如消息代理或数据库