java - 如何在 Spring Cloud Dataflow "Cloudfoundry"服务器启动上引用本地 Kafka 和 Zookeeper 配置

标签 java cloud-foundry spring-cloud-stream spring-cloud-dataflow pcfdev

这是我迄今为止在 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. 摄取 = Producer-app > :broker1

  2. filter = :broker1 > 过滤器应用 > :broker2

<小时/>

现在我需要帮助才能在 PCFDev 上执行完全相同的操作

  1. 我的 PCFDEv 正在运行
  2. 我必须使用本地 kafka 和 Zookeeper 参数将 SCDF-Cloudfoundry jar 部署到 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 启动数据流服务器 --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        

请帮助我。谢谢。

最佳答案

向 PCF 中的流应用程序提供 Kafka 凭证的选项很少。

1。卡夫卡 CUP

此选项允许您为外部 Kafka 服务创建 CUP。在部署流时,您可以按照 docs 中的描述单独向每个应用程序提供坐标。或者您可以将它们提供为 global properties对于 SCDF 服务器部署的所有流应用程序。

2。内联属性

您还可以在部署流时直接提供主机/端口,而不是从 CUP 中提取。同样,这也可以在全局范围内应用。

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

注意:流应用程序必须可以访问主机;明智的是,它会继续连接到本地主机,并且可能会失败,因为应用程序在虚拟机内运行。

关于java - 如何在 Spring Cloud Dataflow "Cloudfoundry"服务器启动上引用本地 Kafka 和 Zookeeper 配置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48738316/

相关文章:

java - Azure 事件中心与 Spring Cloud Stream Kafka 的连接问题

java - 如何从 SubscriableChannel 构建 KStream

java - RxJava : Return an Observable after some delay

java - Maven JavaDoc 两次列出类

java - Android JNI native C 函数调用杀死 Activity

java - 12 Factor Apps - 将管理/管理任务作为一次性流程运行

download - 如何下载bluemix中正在运行的应用程序的源代码

Java Web Start 与嵌入式 Java 小程序

java - 如何在后台查看Cloudfundy Java客户端发送的请求和响应(Api Mocking)

java - Spring Cloud Stream (Hoxton) Kafka 生产者/消费者无法与 EmbeddedKafka 进行集成测试