南瓜慢说官方网站

  • 首页
  • 文章汇总
  • 容器技术
  • SpringBoot-Cloud
  • 程序人生
  • 其它
  • 整理
  • 关于

  • 搜索
中间件 config Go Private Kubernetes pkslow Test HTTPS Redis Docker Mac 计划 Stream MongoDB Spring DevOps JVM String Map Set List 性能 Email Springboot 集合类 ArrayList Java
技术之前,先读诗书:

Spring Cloud Config在Spring Cloud Task中的应用,比Web应用更简单

发表于 2020-08-23 | 分类于 Springboot | 0 | 阅读次数 420

1 前言

前面我们探索了Spring Cloud Config及其在Kubernetes中的应用,都是以常驻的Web应用作为配置客户端的,那对于短命的Spring Cloud Task会有什么不一样吗?

相关文件:

使用Spring Cloud Config统一管理配置,别再到处放配置文件了

Spring Cloud Config整合Spring Cloud Kubernetes,在k8s上管理配置

配置相关文件

2 区别

其实本质区别是不大的,都是配置客户端从配置服务端拉取配置信息,再应用到自己身上。但有以下几点区别让Spring Cloud Task更简单:

(1)Task不是Web应用,生命周期短,无须刷新配置,只在开始启动时拉取配置即可;

(2)Task是非常驻应用,没有端口暴露,更不用注册到服务发现中心。

基于上面区别,我们不需要Task作为DiscoveryClient,不用实现注册相关功能;也不用添加actuator用于刷新配置。

3 Task实现配置拉取

3.1 项目准备

除去Spring Cloud Task本身的依赖,只需要添加一个Spring Cloud Config相关的依赖即可:

<dependency>
  <groupId>org.springframework.cloud</groupId>
  <artifactId>spring-cloud-starter-task</artifactId>
</dependency>
<dependency>
  <groupId>org.springframework.cloud</groupId>
  <artifactId>spring-cloud-task-core</artifactId>
</dependency>

<dependency>
  <groupId>org.springframework.cloud</groupId>
  <artifactId>spring-cloud-starter-config</artifactId>
</dependency>

启动主类没什么特别:

@SpringBootApplication
@EnableTask
public class CloudTaskWithConfigK8s {
    public static void main(String[] args) {
        SpringApplication.run(CloudTaskWithConfigK8s.class, args);
    }
}

我们实现一个ApplicationRunner来打印获取到的配置:

@Component
public class PkslowAppRunner implements ApplicationRunner {
    private static Logger logger = LoggerFactory.getLogger(PkslowAppRunner.class);

    @Value("${pkslow.age:0}")
    private Integer age;

    @Value("${pkslow.email:null}")
    private String email;

    @Value("${pkslow.webSite:null}")
    private String webSite;

    @Override
    public void run(ApplicationArguments args) throws Exception {
        logger.info("running for pkslow task...");
        logger.info("pkslow age: {}", age);
        logger.info("pkslow email: {}", email);
        logger.info("pkslow webSite: {}", webSite);
    }
}

配置文件bootstrap.properties内部如下:

spring.application.name=config-client-cloud-task-k8s
spring.profiles.active=default
spring.cloud.config.label=master

spring.cloud.config.uri=http://config-server-k8s:8888

logging.level.root=debug

这个配置文件决定了应用从哪里读配置、如何读取配置、读取怎样的配置。

准备好后,打一个Docker镜像即可。

3.2 启动与验证

在Spring Cloud Data Flow平台注册App与Task,并启动:

执行成功后,查看日志:

已经成功从Config Server读取到配置了。

4 总结

当Spring Cloud Task作为配置客户端,会更加简单。


欢迎关注微信公众号<南瓜慢说>,将持续为你更新...

file

推荐阅读:
如何制定切实可行的计划并好好执行
容器技术(Docker-Kubernetes)
SpringBoot-Cloud相关
Https专题

  • 本文作者: 南瓜慢说
  • 本文链接: https://www.pkslow.com/archives/spring-cloud-config-for-cloud-task
  • 版权声明: 本博客所有文章除特别声明外,不可转载!
# 中间件 # config # Go # Private # Kubernetes # pkslow # Test # HTTPS # Redis # Docker # Mac # 计划 # Stream # MongoDB # Spring # DevOps # JVM # String # Map # Set # List # 性能 # Email # Springboot # 集合类 # ArrayList # Java
中间件 config Go Private Kubernetes pkslow Test HTTPS Redis Docker Mac 计划 Stream MongoDB Spring DevOps JVM String Map Set List 性能 Email Springboot 集合类 ArrayList Java
这么高颜值的Kubernetes管理工具Lens,难道还不能C位出道吗
如何开发Springboot命令行非Web应用
  • 文章目录
  • 站点概览
南瓜慢说

南瓜慢说

多年Java开发,主要专注后端技术:Java/Spring/Springboot/微服务/大数据等。

多读书,多分享;多写作,多整理。

160 日志
7 分类
27 标签
RSS
0%
© 2020 — 2021 南瓜慢说 本站已挣扎运行:   粤ICP备20036375号