Spring Cloud Data Flow (SCDF) + Apache Kafka - 在哪里部署 Kafka 代理?
Posted
技术标签:
【中文标题】Spring Cloud Data Flow (SCDF) + Apache Kafka - 在哪里部署 Kafka 代理?【英文标题】:Spring Cloud Data Flow (SCDF) + Apache Kafka - Where to Deploy the Kafka Brokers? 【发布时间】:2018-04-06 13:02:40 【问题描述】:我不确定我是否了解 Spring Cloud Data Flow (SCDF) 和 Apache Kafka Brokers(及其相关的 Zookeeper)之间的关系。
我阅读了几个文档并观看了有关 Spring Cloud Data Flow (SCDF) 的网络研讨会。我了解此框架中不同微服务之间通信的不同绑定选项(RabbitMQ,Kafka,...)。
我找到了很多关于如何使用 Kafka 的信息,但没有找到在哪里运行/操作它。我的假设是否正确,您必须独立于 SCDF 安装/管理/操作 Kafka 代理(+ Zookeeper)? SCDF“只是”使用 Kafka 代理进行内部通信,并且 - 可选地 - 用于微服务内的业务逻辑(例如,通过使用 Kafka 生产者或消费者 API,对吗?
即使我为 SCDF 使用 Mesos 或 Kubernetes 之类的框架,Kafka 代理 (+ ZK) 仍然可以自行运行,也可以在 Mesos 或 Kubernetes 或其他地方运行。
SCDF 可用于部署与 Kafka 代理通信的 Kafka 应用程序 - 这可以是 Kafka 消费者/生产者、Kafka Streams 应用程序,甚至是 Kafka 生态系统的其他部分,如 Kafka Connect 或 KSQL。所有这些都可以在 SCDF 中的 Spring Boot 应用程序/微服务中运行。
这些陈述是否正确,还是我遗漏了什么?
【问题讨论】:
【参考方案1】:SCDF“只是”使用 Kafka 代理进行内部通信,并且 - 可选地 - 用于微服务内的业务逻辑(例如,通过使用 Kafka 生产者或消费者 API,对吗?
需要明确的是,SCDF 不在内部使用 Kafka 或任何其他代理。在运行时依赖它的是应用程序本身。这些应用程序专门基于 Spring Cloud Stream 编程模型。 SCDF 只是将此类应用程序编排成一个完全一致的数据管道。您可以分别从here 和here 阅读有关编程模型以及它们如何与绑定器实现(代理)交互的更多详细信息。
即使我为 SCDF 使用 Mesos 或 Kubernetes 之类的框架,Kafka 代理 (+ ZK) 仍然可以自行运行,也可以在 Mesos 或 Kubernetes 或其他地方运行。
是的 - 这些单独的系统都没有托管。预计它们将单独运行和操作。
【讨论】:
【参考方案2】:是的,您需要管理代理,数据流不会管理或部署您的中间件基础架构,例如消息代理或数据库
【讨论】:
以上是关于Spring Cloud Data Flow (SCDF) + Apache Kafka - 在哪里部署 Kafka 代理?的主要内容,如果未能解决你的问题,请参考以下文章
Swarm 的 Spring Cloud Data Flow 支持
Spring Cloud Data Flow 的自定义任务中缺少参数
Spring Cloud Data Flow 安全配置和与 RedHat SSO 的集成