Настройте Spring Cloud Task для использования сервера Kafa of Spring Cloud Data Flow.

У меня есть сервер Spring Cloud Data Flow (SCDF), работающий на Kubernetes cluster с Kafka в качестве брокера сообщений. Сейчас пытаюсь запустить Spring Cloud Task (SCT) который пишет в тему в Kafka. Я бы хотел, чтобы SCT использовал тот же Kafka, что и SCDF. Это поднимает два вопроса, которые у меня есть, и я надеюсь, что на них можно ответить:

  1. Как настроить SCT для использования той же Kafka, что и SCDF?
  2. Можно ли настроить SCT таким образом, чтобы uri сервера Kafka автоматически передавались в SCT при его запуске, аналогично свойствам источника данных, которые передаются в SCT при запуске?

Поскольку я не смог найти примеров того, как этого добиться, помощь очень ценится.

Изменить: мой собственный ответ

Вот как я заставляю это работать для моего случая. Для моего SCT требуется указать spring.kafka.bootstrap-servers. В оболочке SCDF я передаю его в качестве аргумента --spring.kafka.bootstrap-servers=${KAFKA_SERVICE_HOST}:${KAFKA_SERVICE_PORT}, где KAFKA_SERVICE_HOST и KAFKA_SERVICE_PORT — переменные среды, созданные сценарием установки SCDF k8s.

Вот как запустить задачу в оболочке SCDF

dataflow:>task launch --name sample-task --arguments "--spring.kafka.bootstrap-servers=${KAFKA_SERVICE_HOST}:${KAFKA_SERVICE_PORT}"

person Phuong Hoang    schedule 27.02.2019    source источник


Ответы (1)


Вы можете просмотреть Spring Cloud Task Events в справочном руководстве.

Ожидается, что вы выберете подходящую подшивку и упакуете эту библиотеку в путь к классам приложения Task. С помощью этой зависимости вы затем настроите приложение с помощью свойства связывателя Kafka, такие как spring.cloud.stream.kafka.binder.brokers и другие, которые необходимы для подключения к существующему кластеру Kafka.

После запуска приложения Task (из SCDF) с этими конфигурациями вы сможете публиковать или получать события в своем приложении Task.

Кроме того, с помощью связывателя Kafka в пути к классам приложения Task вы можете определить свойства связывателя Kafka для всех задач, запускаемых SCDF, через глобальную конфигурацию. См. Common Application Properties в исх. руководство для получения дополнительной информации. В этой модели вам не нужно явно настраивать каждое приложение Task со свойствами Kafka, вместо этого SCDF автоматически распространяет их при запуске Tasks. Имейте в виду, что эти свойства будут предоставлены всем запускаемым задачам.

person Sabby Anandan    schedule 28.02.2019