温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Springcloud Config配置中心怎么使用

发布时间:2022-09-15 10:25:28 来源:亿速云 阅读:175 作者:iii 栏目:开发技术

这篇文章主要介绍“Springcloud Config配置中心怎么使用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Springcloud Config配置中心怎么使用”文章能帮助大家解决问题。

    Springcloud Config

    什么是springcloud Config

    简单来说,Spring Cloud Config就是我们通常意义上的配置中心,也就是微服务项目中,每一个微服务都需要配置相应的配置,如果不同服务的配置文件有相同的配置,如果这些相同配置需要修改的话就要全都修改一遍。如果使用springcloud Config的话就可以把原本放在本地文件的配置抽取出来放在中心服务器,从而能够提供更好的管理、发布能力。

    Config分为服务端和客户端,服务端也称为分布式配置中心,它是一个独立的微服务应用,用来连接配置服务器并为客户端提供获取配置信息,加密/解密信息等访接口。客户端则是通过指定的配置中心来管理应用资源,以及与业务相关的配置内容,并在启动的时候从配置中心获取和加载配置信息配置服务器默认采用git来存储配置信息,这样就有助于对环境配置进行版本管理,并且可以通过git客户端工具来方便的管理和访问配置内容

    config服务端的配置使用

    第一步: 外部config需要结合git使用,于是需要在github或者gitee创建一个仓库,仓库里全都是各种配置文件,git远程仓库的创建这里就不多加赘述,创建完成之后需要获取到仓库的链接

    Springcloud Config配置中心怎么使用

    第二步: 引入相关依赖

    <!--Config服务端-->
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-config-server</artifactId>
    </dependency>

    第三步: 配置文件配置远程仓库地址

    server:
      port: 3344

    spring:
      application:
        name: cloud-config-center #注册进Eureka服务器的微服务名
      cloud:
        config:
          server:
            git:
              uri: https://gitee.com/mereign/springcloud-config.git    #GitHub或者Gitee上面的git仓库名字
              search-paths: #搜索目录
                - springcloud-config
          label: master #读取分支
          #启动成功后访问的路径 http://ip:3344/{label}/{application}-{profile}.yml 能访问的配置文件 就表示成功了

    eureka:
      client:
        service-url:
          defaultZone: http://localhost:7001/eureka

    启动配置中心微服务模块,但是有些小伙伴会遇到这个异常Authentication is required but no CredentialsProvider has been registered,原因是你的远程仓库创建的私有的未开源,解决方案有两种,一来就是把仓库修改为开源仓库,还有就是使用下面的方法配置你github或者Gitee的用户名和密码

    spring:
      application:
        name: cloud-config-center #注册进Eureka服务器的微服务名
      cloud:
        config:
          server:
            git:
              uri: https://gitee.com/mereign/springcloud-config.git    #GitHub或者Gitee上面的git仓库名字
              username: 自己的github或者Gitee用户名
              password: 自己的github或者Gitee密码

    第四步: 主程序类使用@EnableConfigServer注解标注Config服务端

    配置好了之后启动微服务,可以使用url链接直接读取文件里的内容

    Springcloud Config配置中心怎么使用

    config客户端的相关问题

    config客户端的配置使用

    第一步: 引入相关依赖,这里客户端的依赖与服务端有所不同

    <!--Config服务端-->
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-config</artifactId>
    </dependency>

    第二步: 配置文件,这里的客户端的配置文件与之前的有所不同,命名为bootstrap.yml,主要区别为applicaiton.yml是用户级的资源配置项,而bootstrap.yml是系统级的,优先级更加高

    server:
      port: 3355

    spring:
      application:
        name: config-client
      cloud:
        config:
          uri: http://localhost:3344  #配置中心的地址
          label: master  #分支名称
          name: config  #配置文件名称
          profile: dev  #读取后缀名称   

    #服务注册到eureka地址
    eureka:
      client:
        service-url:
          #设置与eureka server交互的地址查询服务和注册服务都需要依赖这个地址
          defaultZone: http://localhost:7001/eureka #单机版

    经过上述配置,等服务启动开的时候,会3355服务端会到3344服务端获取config-dev的配置内容,3344服务端再来连接配置的GitHub或者Gitee仓库从而获取config-dev的配置内容

    第三步: 主程序类只需要标注eureka客户端即可,无需标注config客户端

    第四步: 服务端的url链接形式获取内容,而客户端需要使用REST接口的形式获取指定配置信息

    @RestController
    public class ConfigController {
        @Value("${config.info}")
        private String configInfo;
        @GetMapping("/configInfo")
        public String getConfigInfo() {
            return configInfo;
        }
    }

    启动主程序类(要先启动注册中心eureka再启动config服务端,最后才能启动config客户端),然后访问controller中的接口即可获得相应的配置信息

    Springcloud Config配置中心怎么使用

    动态刷新问题

    当远程仓库的配置修改之后,服务端通过url链接的形式获取内容是更新之后的,但是客户端使用REST接口的形式获取到的配置信息则是更新之前的,只有重启config服务端微服务才能通过客户端接口访问到更新之后的配置信息。

    为了解决上述的问题,可以使用动态刷新配置服务端微服务,避免每次配置更新都需要重启微服务才能获取最新配置的痛点

    第一步: 引入actuator监控技术依赖

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-actuator</artifactId>
    </dependency>

    第二步: bootstrap.yml文件中暴露服务端点,可以让这个服务处于可被监控状态

    # 暴露监控端点
    management:
      endpoints:
        web:
          exposure:
            include: "*"

    第三步: 在controller类上加@RefreshScope注解

    第四步: 发送post请求,手动刷新3355服务端的监控,这样才能刷新config服务端获取的配置信息

    curl -X POST "http://localhost:3355/actuator/refresh

    第五步: 到此为止就config服务端就可以访问到远程仓库中最新的配置信息了

    关于“Springcloud Config配置中心怎么使用”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注亿速云行业资讯频道,小编每天都会为大家更新不同的知识点。

    向AI问一下细节

    免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

    AI