系统信息
Spring Cloud数据流Cloud Foundry:v1.1.0.RELEASE Pivotal Cloud Foundry:v1.7.12 CF客户端(Windows):cf.exe版本6.23.1 + a70deb3.2017-01-13 cf-v3-plugin:0.6.7
启动没有参数的时间戳任务应用程序失败。 Spring Cloud Data Flow Server的日志在https://gist.github.com/anonymous/420f3928b7831a11b378fc6792be1ffc显示以下堆栈跟踪。
运行cf v3-apps
输出
name total_desired_instances
ticktock-ts 0
然后cf v3-rt ticktock-ts start now
生成
OK
Running task start on app ticktock-ts...
Tailing logs for app ticktock-ts...
Failed to run task start:
{ "code": 330002, "description": "Feature Disabled: task_creation", "error_code": "CF-FeatureDisabled"}
此task_creation功能已禁用,我的PCF管理员表示无法在我们拥有的PCF版本上启用它。
谢谢。
答案 0 :(得分:0)
任务被认为是“实验性的”。在PCF之前1.9.x.我看到你正在运行vci-cli插件,所以你必须知道这一点。尝试使用允许实验任务在旧版PCF中运行的变量设置SCDF:
cf set-env foundry-server SPRING_CLOUD_DATAFLOW_FEATURES_EXPERIMENTAL_TASKSENABLED true
另外,我收到了与SCDF版本的1.1.0版本以及1.2.0-build-snapshot(我能找到的最新版本)相同的错误。我注意到错误仅在重复启动尝试后才出现。通过取消注册和销毁任务并重新开始,我只会在多次尝试后得到该错误。
答案 1 :(得分:0)
我们也为我们的1.5版本的PCF安装完成了它。
以下是我们在峰值期间所做的笔记和学习尝试。我希望它有所帮助。
Spring Cloud Task允许用户使用Spring Cloud开发和运行短期微服务,并在云中本地运行,甚至在Spring Cloud Data Flow上运行。 我们使用示例Spring Cloud应用程序:thumbnail-generator作为我们用例的短期微服务。
有关Spring Cloud Task的详细参考指南位于spring docs。
请注意,我们已经使用了Rabbit Binder,为了工作,在PCF Space中创建了一个RabbitMq实例,并使用下面解释的变量绑定到app。
步骤和命令
在本地专家中开发和安装任务应用 - mvn clean install
设置Maven远程仓库,如果要使用私有仓库进行其他依赖性下载:
export MAVEN_REMOTE_REPOSITORIES_REPO1_URL=YOUR_NEXUS_URL
设置Cloud Foundry目的地:
export SPRING_CLOUD_DEPLOYER_CLOUDFOUNDRY_URL=PCF API Endpoint
export SPRING_CLOUD_DEPLOYER_CLOUDFOUNDRY_ORG=Org Name
export SPRING_CLOUD_DEPLOYER_CLOUDFOUNDRY_SPACE=Space Name
export SPRING_CLOUD_DEPLOYER_CLOUDFOUNDRY_DOMAIN=Site domain
export SPRING_CLOUD_DEPLOYER_CLOUDFOUNDRY_USERNAME=user name
export SPRING_CLOUD_DEPLOYER_CLOUDFOUNDRY_PASSWORD=password
export SPRING_CLOUD_DEPLOYER_CLOUDFOUNDRY_SKIP_SSL_VALIDATION=true
export SPRING_CLOUD_DEPLOYER_CLOUDFOUNDRY_STREAM_STAGING_TIMEOUT=300s
export SPRING_CLOUD_DEPLOYER_CLOUDFOUNDRY_STREAM_STARTUP_TIMEOUT=300s
export SPRING_CLOUD_DEPLOYER_CLOUDFOUNDRY_STREAM_BUILDPACK=java_buildpack_offline export SPRING_CLOUD_DEPLOYER_CLOUDFOUNDRY_STREAM_MEMORY=512
export SPRING_CLOUD_DEPLOYER_CLOUDFOUNDRY_TASK_MEMORY=512
export SPRING_CLOUD_DEPLOYER_CLOUDFOUNDRY_STREAM_ENABLE_RANDOM_APP_NAME_PREFIX=false
export SPRING_CLOUD_DEPLOYER_CLOUDFOUNDRY_STREAM_SERVICES=myMessageStream_rabbitmq_server
SPRING_CLOUD_DEPLOYER_CLOUDFOUNDRY_STREAM_SERVICES可以用逗号分隔 我们想要与流应用程序绑定的服务实例列表。 SPRING_CLOUD_DEPLOYER_CLOUDFOUNDRY_TASK_SERVICES用于列出所需的服务 被绑定到任务应用程序
启动数据流服务器 -
如果在本地运行Stream应用程序:
mvn clean package
mvn spring-boot:run
如果在PCF上运行Stream应用程序:
mvn clean package
java -Djavax.net.ssl.trustStore=./keystore.jks -Djavax.net.ssl.trustStorePassword=password -jar target/spring-cloud-dataflow-server-cloudfoundry-1.1.0.BUILD-SNAPSHOT.jar
构建数据流Shell - mvn clean package
启动DF Shell - mvn spring-boot:run
导入开箱即用的应用 - app import --uri use_the_bitly_url_for_stream-applications-rabbit-maven
要从本地文件系统导入自定义列表,请使用Uri作为文件 系统:
--uri=file://<full path to the jar file on local system>
注册应用 -
app register --name task-processor --type processor --uri maven://org.springframework.cloud.stream.app:tasklaunchrequest-transform-processor-rabbit:jar:1.1.0.BUILD-SNAPSHOT
app register --name task-launcher-local --type sink --uri maven://org.springframework.cloud.stream.app:task-launcher-local-sink-rabbit:jar:1.0.4.RELEASE
创建&amp;部署流 -
在本地:
stream create myMessageStream --definition "rabbit --rabbit.queues=cloud-stream-source --rabbit.requeue=true --spring.rabbitmq.host=localhost --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
在PCF上:
stream create myMessageStream --definition "rabbit --rabbit.queues=cloud-stream-source --rabbit.requeue=true --spring.rabbitmq.host=${vcap.services.p-rabbitmq.credentials.protocols.amqp.host} --spring.rabbitmq.port=${vcap.services.p-rabbitmq.credentials.protocols.amqp.port} --spring.cloud.stream.bindings.output.contentType='text/plain' | task-processor --uri=maven://com.example:thumbnail-generator:0.0.1-SNAPSHOT | task-launcher-local" --deploy
如果成功部署到PCF,您可以找到3个正在运行的应用程序即。 CF上的兔子监听器,任务处理器和任务启动器,以启用事件驱动的架构微服务。
要将IBM MQ作为源,流定义将是
... --definition "jms --jms.destination=<value>
--spring.jms.jndi-name=<value> --spring.cloud.stream.bindings.output.contentType='text/plain' ...
如上所述,所有上述操作也可以使用Dataflow Server仪表板完成。
我希望它有所帮助。