如何将Spring Cloud Data Flow与Spring Boot Admin集成以监控批处理应用?
Spring Cloud Data Flow 与 Spring Boot Admin 集成指南
完全可以把Spring Cloud Data Flow(SCDF)和Spring Boot Admin(SBA)集成到一起,实现微服务、批处理应用的统一监控与管理,下面是具体的操作步骤:
1. 给SCDF核心组件配置SBA客户端
- 针对Data Flow Server、Skipper Server(如果用到了),在项目依赖里加上Spring Boot Admin客户端依赖:
Maven:
Gradle:<dependency> <groupId>de.codecentric</groupId> <artifactId>spring-boot-admin-starter-client</artifactId> </dependency>implementation 'de.codecentric:spring-boot-admin-starter-client' - 在配置文件里指定SBA服务器地址:
spring.boot.admin.client.url=http://你的SBA服务器地址:端口 spring.boot.admin.client.enabled=true spring.application.name=spring-cloud-data-flow-server
2. 给批处理应用配置SBA客户端
- 所有基于Spring Boot的批处理应用,都需要添加上面提到的SBA客户端依赖
- 同样在配置里指定SBA地址和应用名称,方便在SBA界面识别:
spring.boot.admin.client.url=http://你的SBA服务器地址:端口 spring.application.name=batch-用户数据导入任务 - 如果批处理应用是通过SCDF部署的,也可以在部署时通过参数传递这些配置,不用修改应用代码:
--spring.boot.admin.client.url=http://sba-server:8080 --spring.application.name=batch-job-xxx
3. 整合服务发现(可选,更高效)
- 如果你用了Eureka、Consul这类服务发现组件,SBA可以直接从服务发现中心拉取所有应用,不用每个应用单独配置SBA地址
- 在SBA服务器的配置文件里开启服务发现支持,以Eureka为例:
spring.boot.admin.discovery.enabled=true eureka.client.service-url.defaultZone=http://eureka-server:8761/eureka/
4. 扩展批处理任务的监控内容
- 让批处理应用暴露Spring Batch的监控端点,就能在SBA里查看任务执行状态、历史记录:
- 添加Actuator依赖:
spring-boot-starter-actuator - 开启Batch相关端点:
management.endpoints.web.exposure.include=batch,health,info management.endpoint.batch.enabled=true - 打开SBA里对应批处理应用的详情页,就能看到Batch任务的执行数据
- 添加Actuator依赖:
5. 实现批处理任务的管理(可选)
- 你可以通过SBA的自定义操作功能,调用SCDF的API来启动、停止批处理任务:
- 要么在SBA服务器端配置自定义操作按钮,指向SCDF的任务管理API;要么在批处理应用里写自定义Actuator端点,触发任务的启停逻辑
内容的提问来源于stack exchange,提问作者Kranti Man Singh
相关产品推荐
相关产品推荐

