spring-cloud-stream:流部署在 spring-cloud-dataflow-server-cf 上失败

spring-cloud-stream: Stream deployments fail on spring-cloud-dataflow-server-cf

在我们的 use-case 中,我们需要创建一个 Message Stream 应用程序并将其部署到我们的私有 Cloud Foundry 环境。流应用程序旨在监听 RabbitMq queue 并触发任务,如流中定义的那样。

为了实现相同的目的,我们通过 运行 在 Mac 上本地使用 cloud-dataflow-server-cloudfoundry

下面是用于实现它的一组命令:-

然而,部署失败并出现 TimeoutException,但在数据流服务器日志或应用程序日志中没有明确原因。

在cloud foundryspace中创建的应用程序在CF控制台上都显示Stopped

这让我一头雾水,我有几个问题来了解可能的根本原因:

  1. 如果Stream部署成功,Stream部署到CF的应用应该是什么状态?这些显示为 started 还是 stopped?
  2. 已部署应用程序的名称中嵌入了几个随机词,例如dataflow-nonvaluable-overapprehension-myMessageStream-rabbit。据我了解,这是为 Dataflow Server 实例指定的名称,并被插入以进行引用。有没有办法自定义此名称?这将使我能够提前知道应用程序的名称,然后 运行 在他们的日志中找到尾巴。

任何 thoughts/help 将不胜感激。

In case of a successful Stream deployment, what shall be the status of applications deployed to CF by Stream? Do these show up as started or stopped?

stream list 命令将显示状态。如果流部署成功,状态应该是deployed.

The name of the deployed applications has couple of random words embedded in it e.g. dataflow-nonvaluable-overapprehension-myMessageStream-rabbit. In my understanding that is the name given to the Dataflow Server instance and is inserted to make a reference. Is there a way to customise this name? That will enable me to know the name of applications in advance and hen run a tail on their logs.

您可以通过以下方式禁用此 属性 来覆盖应用名称中的随机名称生成: export SPRING_CLOUD_DEPLOYER_CLOUDFOUNDRY_STREAM_ENABLE_RANDOM_APP_NAME_PREFIX=false

您可以使用设置特定 prefix:

的部署程序 属性 控制应用程序名称

export SPRING_CLOUD_DEPLOYER_CLOUDFOUNDRY_STREAM_APP_NAME_PREFIX=myprefix

您可以尝试增加部署器属性 SPRING_CLOUD_DEPLOYER_CLOUDFOUNDRY_STREAM_STAGING_TIMEOUTSPRING_CLOUD_DEPLOYER_CLOUDFOUNDRY_STREAM_STARTUP_TIMEOUT 以查看应用程序是否需要更多时间才能 stage/startup。