配置 Spring Cloud Task 以使用 Spring Cloud Data Flow 服务器的 Kafa
Configure Spring Cloud Task to use Kafa of Spring Cloud Data Flow server
我在 Kubernetes cluster
上有一个 Spring Cloud Data Flow (SCDF)
服务器 运行,Kafka
作为消息代理。现在我正在尝试启动一个 Spring Cloud Task (SCT)
来写入 Kafka
中的主题。我希望 SCT 使用与 SCDF
相同的 Kafka
。这提出了我的两个问题,希望能得到解答:
- How to configure the SCT to use the same Kafka as SCDF?
- Is it possible to configure the SCT so that the Kafka server uri can be passed to the SCT automatically when it launches, similar to
the data source properties that get passed to the SCT at launch?
由于找不到有关如何实现此目的的任何示例,非常感谢您的帮助。
编辑:我自己的回答
这就是我如何让它适用于我的案例。我的 SCT 需要提供 spring.kafka.bootstrap-servers
。从 SCDF 的 shell 中,我将其作为参数 --spring.kafka.bootstrap-servers=${KAFKA_SERVICE_HOST}:${KAFKA_SERVICE_PORT}
提供,其中 KAFKA_SERVICE_HOST
和 KAFKA_SERVICE_PORT
是由 SCDF 的 k8s 安装脚本创建的环境变量。
这是在 SCDF shell
中启动任务的方法
dataflow:>task launch --name sample-task --arguments "--spring.kafka.bootstrap-servers=${KAFKA_SERVICE_HOST}:${KAFKA_SERVICE_PORT}"
您可能需要查看参考指南中的 Spring Cloud Task Events
部分。
期望您选择所选的活页夹并将该库打包到任务应用程序的类路径中。有了这种依赖性,您就可以使用 Spring Cloud Stream 的 Kafka binder properties 来配置应用程序,例如 spring.cloud.stream.kafka.binder.brokers
和其他与连接到现有 Kafka 集群相关的东西。
使用这些配置启动任务应用程序(来自 SCDF)后,您将能够在您的任务应用程序中发布或接收事件。
或者,在 Task 应用程序的类路径中使用 Kafka-binder,您可以通过全局配置为 SCDF 启动的所有任务定义 Kafka binder 属性。请参阅参考文献中的 Common Application Properties
。指南了解更多信息。在此模型中,您不必使用 Kafka 属性显式配置每个任务应用程序,相反,SCDF 会在启动任务时自动传播它们。请记住,这些属性将提供给 all 任务启动。
我在 Kubernetes cluster
上有一个 Spring Cloud Data Flow (SCDF)
服务器 运行,Kafka
作为消息代理。现在我正在尝试启动一个 Spring Cloud Task (SCT)
来写入 Kafka
中的主题。我希望 SCT 使用与 SCDF
相同的 Kafka
。这提出了我的两个问题,希望能得到解答:
- How to configure the SCT to use the same Kafka as SCDF?
- Is it possible to configure the SCT so that the Kafka server uri can be passed to the SCT automatically when it launches, similar to the data source properties that get passed to the SCT at launch?
由于找不到有关如何实现此目的的任何示例,非常感谢您的帮助。
编辑:我自己的回答
这就是我如何让它适用于我的案例。我的 SCT 需要提供 spring.kafka.bootstrap-servers
。从 SCDF 的 shell 中,我将其作为参数 --spring.kafka.bootstrap-servers=${KAFKA_SERVICE_HOST}:${KAFKA_SERVICE_PORT}
提供,其中 KAFKA_SERVICE_HOST
和 KAFKA_SERVICE_PORT
是由 SCDF 的 k8s 安装脚本创建的环境变量。
这是在 SCDF shell
中启动任务的方法dataflow:>task launch --name sample-task --arguments "--spring.kafka.bootstrap-servers=${KAFKA_SERVICE_HOST}:${KAFKA_SERVICE_PORT}"
您可能需要查看参考指南中的 Spring Cloud Task Events
部分。
期望您选择所选的活页夹并将该库打包到任务应用程序的类路径中。有了这种依赖性,您就可以使用 Spring Cloud Stream 的 Kafka binder properties 来配置应用程序,例如 spring.cloud.stream.kafka.binder.brokers
和其他与连接到现有 Kafka 集群相关的东西。
使用这些配置启动任务应用程序(来自 SCDF)后,您将能够在您的任务应用程序中发布或接收事件。
或者,在 Task 应用程序的类路径中使用 Kafka-binder,您可以通过全局配置为 SCDF 启动的所有任务定义 Kafka binder 属性。请参阅参考文献中的 Common Application Properties
。指南了解更多信息。在此模型中,您不必使用 Kafka 属性显式配置每个任务应用程序,相反,SCDF 会在启动任务时自动传播它们。请记住,这些属性将提供给 all 任务启动。