在我们的用例中,我们需要创建消息流应用程序并将其部署到我们的私有云创建环境中。流应用程序用于侦听RabbitMq队列,并触发流中定义的任务。
为了达到同样的目的,我们通过在Mac上本地运行cloud-dataflow-server-cloudfoundry来使用它。
以下是实现这一目标的一组命令:
export MAVEN_REMOTE_REPOSITORIES_REPO1_URL=https://ftl.abc.com/NEXUS1. Build [Dataflow Server CF](https://github.com/spring-cloud/spring-cloud-dataflow-server-cloudfoundry) with spring cloud properties as: - spring.name=dataflow
- spring.cloud.config.uri=[http://localhost:8888](http://localhost:8888/)
- spring.cloud.dataflow.features.tasksEnabled=true
- spring.cloud.dataflow.features.streamsEnabled=true
- spring.cloud.deployer.cloudfoundry.task.taskTimeout=360
1. Start DF Server CF locally - `java -Djavax.net.ssl.trustStore=/Users/apache-maven-3.3.9/conf/keystore.jks -Djavax.net.ssl.trustStorePassword=password -jar spring-cloud-dataflow-server-cloudfoundry-1.1.0.BUILD-SNAPSHOT.jar`
stream-applications-rabbit-mavenapp register --name task-processor --type processor --uri maven://org.springframework.cloud.stream.app:tasklaunchrequest-transform-processor-rabbit:jar:1.1.0.BUILD-SNAPSHOTapp register --name task-launcher-local --type sink --uri maven://org.springframework.cloud.stream.app:task-launcher-local-sink-rabbit:jar:1.0.4.RELEASE
stream create myMessageStream --definition "rabbit --rabbit.queues=cloud-stream-source --rabbit.requeue=true --spring.rabbitmq.host=host.abc.com --spring.rabbitmq.port=5672 --spring.cloud.stream.bindings.output.contentType='text/plain' | task-processor --uri=maven://com.example:thumbnail-generator:0.0.1-SNAPSHOT | task-launcher-local" --deploy但是,部署在TimeoutException中失败,但在Dataflow服务器日志或应用程序的日志中都没有明确的原因。
云铸造空间中创建的应用程序都在CF控制台上显示已停止的。
这让我不知所措,我对此有几个问题来理解可能的根本原因:
任何想法/帮助都将不胜感激。
发布于 2016-11-10 09:22:41
如果流部署成功,那么由Stream部署到CF的应用程序的状态如何?这些是开始出现还是停止出现?
stream list命令将显示状态。如果流部署成功,状态应该是deployed。
已部署应用程序的名称中嵌入了两个随机单词,例如dataflow-nonvaluable-overapprehension-myMessageStream-rabbit.据我理解,这是给Dataflow Server实例指定的名称,并被插入以进行引用。有办法定制这个名字吗?这将使我能够提前知道应用程序的名称,然后在它们的日志上运行一个尾。
您可以通过执行: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_TIMEOUT和SPRING_CLOUD_DEPLOYER_CLOUDFOUNDRY_STREAM_STARTUP_TIMEOUT,以查看应用程序是否需要更多的时间来启动/启动。
https://stackoverflow.com/questions/40523214
复制相似问题