在我的云流应用程序中,我将spring-cloud-starter-stream-processor-tasklaunchrequest-transform
启动应用程序用作任务处理器。
启动器在本地构建并安装在本地 Maven 存储库中。
用于启动我的本地 Dataflow Server 和 DF Shell,然后注册我的应用程序并创建兼部署流的命令如下:-
-
在本地 maven 中安装任务启动器应用程序 -
mvn clean install
-
在本地 maven 中安装任务处理器应用程序 -
mvn clean install
在本地 maven 中安装任务应用程序 -
mvn clean install
在本地构建 Dataflow Server -
mvn clean package
(将 remoteRepo 位置更改为我们的企业 maven 存储库)本地启动 DF 服务器 -
mvn spring-boot:run
构建数据流外壳 -
mvn clean package
启动 DF Shell -
mvn spring-boot:run
使用 Rabbit 绑定导入开箱即用的启动应用程序
stream-applications-rabbit-maven
注册应用程序 -
app register --name task-processor --type processor --uri maven://org.springframework.cloud.stream.app:spring-cloud-starter-stream-processor-tasklaunchrequest-transform: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
创建流 -
stream create foo --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
但是,由于task-processor的启动失败,流的部署失败。处理器日志中记录的错误是:
没有主要清单属性,在 /Users/abc/.m2/repository/org/springframework/cloud/stream/app/spring-cloud-starter-stream-processor-tasklaunchrequest-transform/1.1.0.BUILD-SNAPSHOT/spring- cloud-starter-stream-processor-tasklaunchrequest-transform-1.1.0.BUILD-SNAPSHOT.jar
现在有两点需要提高:
- 日志中提到的 maven 存储库位置是 MacOS 的默认位置,而不是我本地 maven 配置中的一个设置 (/Users/abc/myrepo/.m2/repository)
- 该错误对starter app的内置jar文件有效 -
spring-cloud-starter-stream-processor-tasklaunchrequest-transform
. 如果需要进行任何自定义以使其可运行且可用于我的流应用程序,这让我感到困惑。
我尝试将启动应用程序更改为可运行的 Spring Boot 应用程序,并将该版本安装在我的本地存储库中,但除非应用程序查看正确的本地存储库(而不是默认存储库),否则我无法使用它。
我相信这是应用程序的一个问题,它缺乏本地 Maven 设置的可见性,因此采用默认值。
任何输入都会有所帮助。