Как указать локальную конфигурацию Kafka и Zookeeper при запуске сервера Spring Cloud Dataflow Cloudfoundry

Вот что я успешно сделал на локальном сервере SCDF.

  1. Я успешно развернул сервер SCDF на своем локальном компьютере, а также использовал с ним параметры конфигурации Kafka и Zookeeper, т.е.

mymac $ java -jar spring-cloud-dataflow-server-local-1.3.0.RELEASE.jar --spring.cloud.dataflow.applicationProperties.stream.spring.cloud.stream.kafka.binder.brokers = localhost : 9092 --spring.cloud.dataflow.applicationProperties.stream.spring.cloud.stream.kafka.binder.zkNodes = localhost: 2181

Мне удалось создать свой поток

  1. ingest = producer-app > :broker1

  2. filter = :broker1 > filter-app > :broker2


Теперь мне нужна помощь, чтобы сделать то же самое на PCFDev.

  1. У меня работает мой PCFDEv
  2. Мне нужно развернуть банку SCDF-Cloudfoundry с моими локальными параметрами kafka и zookeeper в pcfDev, но когда я делаю следующие шаги, это дает мне ошибку, что его

1.1) cf push -f manifest-scdf.yml --no-start -p /XXX/XXX/XXX/spring-cloud-dataflow-server-cloudfoundry-1.3.0.BUILD-SNAPSHOT.jar -k 1500M

это работает хорошо ... без проблем. а 1,2

1.2) cf start dataflow-server --spring.cloud.dataflow.applicationProperties.stream.spring.cloud.stream.kafka.binder.brokers = host.pcfdev.io: 9092 --spring.cloud.dataflow.applicationProperties .stream.spring.cloud.stream.kafka.binder.zkNodes = host.pcfdev.io: 2181

дает мне эту ошибку: -

Неправильное использование: неизвестный флаг `spring.cloud.dataflow.applicationProperties.stream.spring.cloud.stream.kafka.binder.brokers '

ниже мой файл manifest-scdf.yml

---
instances: 1                        
memory: 2048M                         
applications:                         
  - name: dataflow-server                   
    host: dataflow-server                  
    services:                       
      - redis                      
      - rabbit                         
    env:                          
      SPRING_CLOUD_DEPLOYER_CLOUDFOUNDRY_URL: https://api.local.pcfdev.io
      SPRING_CLOUD_DEPLOYER_CLOUDFOUNDRY_ORG: pcfdev-org
      SPRING_CLOUD_DEPLOYER_CLOUDFOUNDRY_SPACE: pcfdev-space
      SPRING_CLOUD_DEPLOYER_CLOUDFOUNDRY_DOMAIN: local.pcfdev.io
      SPRING_CLOUD_DEPLOYER_CLOUDFOUNDRY_USERNAME: admin
      SPRING_CLOUD_DEPLOYER_CLOUDFOUNDRY_PASSWORD: admin
      SPRING_CLOUD_DEPLOYER_CLOUDFOUNDRY_SKIP_SSL_VALIDATION: true
      SPRING_CLOUD_DEPLOYER_CLOUDFOUNDRY_STREAM_SERVICES: rabbit
      MAVEN_REMOTE_REPOSITORIES_REPO1_URL: https://repo.spring.io/libs-snapshot
      SPRING_CLOUD_DEPLOYER_CLOUDFOUNDRY_DISK: 512
      SPRING_CLOUD_DEPLOYER_CLOUDFOUNDRY_STREAM_BUILDPACK: java_buildpack
      spring.cloud.deployer.cloudfoundry.stream.memory: 400         
      spring.cloud.dataflow.features.tasks-enabled: true            
      spring.cloud.dataflow.features.streams-enabled: true        

Помогите, пожалуйста. Спасибо.


person Kenny Weeler    schedule 12.02.2018    source источник
comment
0 я вижу, вы указали SPRING_CLOUD_DEPLOYER_CLOUDFOUNDRY_STREAM_SERVICES: rabbit и передали URL-адрес сервера kafka как часть запуска. Зачем нам кролик как сервис для подключения к кафке? Также обязательна ли опция УСЛУГИ? то есть могу я просто получить данные о сервере kafka без указания службы? Спасибо   -  person Ajith Kannan    schedule 28.10.2019


Ответы (2)


Есть несколько вариантов предоставления учетных данных Kafka для Stream-приложений в PCF.

1. Кубки Кафки

Эта опция позволяет вам создавать CUP для внешнего Kafka-сервиса. Затем при развертывании потока вы можете указать координаты для каждого приложения индивидуально, как описано в docs, или вы можете предоставить их как глобальные свойства для всех потоковых приложений, развернутых сервером SCDF.

2. Встроенные свойства

Вместо извлечения из CUP вы также можете напрямую указать HOST / PORT при развертывании потока. Опять же, это можно применить и в глобальном масштабе.

stream deploy myTest --properties "app.*.spring.cloud.stream.kafka.binder.brokers=<HOST>:9092,app.*.spring.cloud.stream.kafka.binder.zkNodes=<HOST>:2181

Примечание: HOST должен быть доступен для потоковых приложений; в противном случае он не будет продолжать подключаться к localhost и может выйти из строя, поскольку приложения работают внутри виртуальной машины.

person Sabby Anandan    schedule 12.02.2018
comment
Спасибо, Сабби. быстрый запрос - как вы предоставите их по всему миру после создания CUP? - person Kenny Weeler; 12.02.2018
comment
1) Это должно быть во время команды cf start dataflow-server или 2) что-то еще. Просто немного запутался. Я бы предпочел, чтобы он предоставлялся глобально, поскольку его будет сложно предоставить в качестве встроенных аргументов, если количество приложений увеличится. - person Kenny Weeler; 12.02.2018
comment
Вы бы поставили это как SAJ env-var. Что-то вроде: cf set-env <SERVER_NAME> SPRING_APPLICATION_JSON {"spring.cloud.dataflow.applicationProperties.stream.spring.cloud.stream.kafka.binder.brokers": "<HOST>:<PORT>","spring.cloud.dataflow.applicationProperties.stream.spring.cloud.stream.kafka.binder.zkNodes": "<HOST>:<PORT>"} - person Sabby Anandan; 12.02.2018
comment
См. этот комментарий, чтобы настроить пользовательский координаты кролика. - person Sabby Anandan; 12.02.2018

Ошибка, которую вы видите, исходит от интерфейса командной строки CF, он интерпретирует те (я предполагаю, что среда) переменные, которые вы предоставляете в качестве флагов для команды cf start, и терпит неудачу.

Вы можете указать их в своем manifest.yml или установить их значения вручную с помощью команды cf set-env интерфейса командной строки, выполнив что-то вроде этого:

cf set-env dataflow-server spring.cloud.dataflow.applicationProperties.stream.spring.cloud.stream.kafka.binder.brokers host.pcfdev.io:9092

cf set-env dataflow-server spring.cloud.dataflow.applicationProperties.stream.spring.cloud.stream.kafka.binder.zkNodes host.pcfdev.io:2181

После того, как вы их установили, они должны быть подняты при запуске cf start dataflow-server.

Соответствующие документы CLI: http://cli.cloudfoundry.org/en-US/cf/set-env.html

person tcdowney    schedule 12.02.2018