java - Spring Cloud Data Flow (SCDF) + Apache Kafka - 在哪里部署 Kafka Brokers?

标签 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) 的网络研讨会。我了解此框架中不同微服务之间通信的不同绑定(bind)选项(RabbitMQ、Kafka...)。

我找到了很多关于如何使用 Kafka 的信息,但没有找到在哪里运行/操作它。我的假设是否正确,即您必须独立于 SCDF 安装/管理/操作 Kafka 代理(+ Zookeeper)? SCDF“只是”使用 Kafka 代理进行内部通信,并且可选地使用微服务内的业务逻辑(例如,通过使用 Kafka 生产者或消费者 API,对吧?

即使我为 SCDF 使用 Mesos 或 Kubernetes 这样的框架,Kafka Brokers (+ ZK) 仍然独立运行,要么在 Mesos 或 Kubernetes 上,要么在其他地方。

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

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

最佳答案

SCDF "just" uses Kafka brokers for the internal communication and - optionally - for business logic within the microservices (e.g. by using a Kafka Producer or Consumer API, right?

需要明确的是,SCDF 在内部使用 Kafka 或任何其他代理。应用程序本身在运行时依赖它。这些应用程序特别基于 Spring Cloud Stream 编程模型。 SCDF 只是将此类应用程序编排成完全一致的数据管道。您可以从 here 阅读有关编程模型以及它们如何与绑定(bind)器实现(代理)交互的更多详细信息。和 here分别。

Even if I use a framework like Mesos or Kubernetes for SCDF, the Kafka Brokers (+ ZK) are still run on their own, either also on Mesos or Kubernetes or somewhere else.

是的 - 这些单独的系统都没有托管。它们预计将单独运行和运营。

关于java - Spring Cloud Data Flow (SCDF) + Apache Kafka - 在哪里部署 Kafka Brokers?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46932422/

相关文章:

spring - 响应式Spring Cloud Stream从队列中读取所有数据,但非响应式则一条一条地读取消息

docker - Kafka在Docker和Spring Producer应用程序上

java - 将 YAML 转换为 Java 对象

java - 使用 gson 解析 JSON 对象数组

java - Maven mvn --dos 上的版本显示一些特殊的东西

sql-server - 重置 JDBC Kafka 连接器以从头开始提取行?

docker - Spring Cloud 服务查找错误 : Load balancer does not have available server for client

java - Eureka 总是返回端口为 8080 的 url

java - java中的n维结构/映射

java - 将额外文件源控制到已创建的存储库(例如二进制文件)