前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >SpringCloud微服务:Config组件,实现配置统一管理

SpringCloud微服务:Config组件,实现配置统一管理

作者头像
知了一笑
发布2019-08-20 13:56:44
7070
发布2019-08-20 13:56:44
举报
文章被收录于专栏:知了一笑知了一笑

一、Config简介

在微服务系统中,服务较多,相同的配置:如数据库信息、缓存、参数等,会出现在不同的服务上,如果一个配置发生变化,需要修改很多的服务配置。spring cloud提供配置中心,来解决这个场景问题。 系统中的通用配置存储在相同的地址:GitHub,Gitee,本地配置服务等,然后配置中心读取配置以restful发布出来,其它服务可以调用接口获取配置信息。

二、配置服务端

1、项目结构

  • 核心注解:@EnableConfigServer

2、核心依赖

代码语言:javascript
复制
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-config-server</artifactId>
</dependency>

3、核心配置文件

这里注意读取文件的配置

  • active :native,读取本地配置;
  • active :git,读取网络仓库配置;
代码语言:javascript
复制
server:
  port: 9001
spring:
  application:
    name: config-server-9001
  profiles:
    # 读取本地
    # active: native
    # 读取Git
    active: git
  cloud:
    config:
      server:
        native:
          search-locations: classpath:/config
        git:
          # 读取的仓库地址
          uri: https://gitee.com/cicadasmile/spring-cloud-config.git
          # 读取仓库指定文件夹下
          search-paths: /cloudbaseconfig
          # 非公开需要的登录账号
          username:
          password:
      label: master

4、读取配置内容

不同的环境读取的结果不同。

代码语言:javascript
复制
info:
  date: 20190814
  author: cicada
  sign: develop
  version: V1.0

三、配置客户端

1、核心依赖

代码语言:javascript
复制
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-config</artifactId>
</dependency>

2、核心配置文件

在上面的配置中心,配置读取Git资源,所以这里的配置也就是读取Git资源。

代码语言:javascript
复制
server:
  port: 8001
spring:
  application:
    name: config-client-8001
  profiles:
    active: dev
  cloud:
    config:
      # 读取本地配置 ---------------------------
      #uri: http://localhost:9001
      ## 读取策略:快速失败
      #fail-fast: true
      ## 读取的文件名:无后缀
      #name: client-8001
      ## 读取的配置环境
      #profile: dev  # client-8001-dev.yml
      # ----------------------------------------

      # github上的资源名称 -----------------------
      name: client-8001
      # 读取的配置环境
      profile: dev
      label: master
      # 本微服务启动后,通过配置中心6001服务,获取GitHub的配置文件
      uri: http://localhost:9001
      # ----------------------------------------

3、测试接口

代码语言:javascript
复制
@RestController
public class ClientController {
    @Value("${info.date}")
    private String date ;
    @Value("${info.author}")
    private String author ;
    @Value("${info.sign}")
    private String sign ;
    @Value("${info.version}")
    private String version ;
    /**
     * 获取配置信息
     */
    @RequestMapping("/getConfigInfo")
    public String getConfigInfo (){
        return date+"-"+author+"-"+sign+"-"+version ;
    }
}

四、基于Eureka配置

上面的模式,通过服务中心,直接获取配置。下面把注册中心Eureka加进来。

1、项目结构

启动顺序也是如下:

代码语言:javascript
复制
node06-eureka-7001
config-server-9001
config-client-8001

2、修改配置项

  • 将config-server-9001添加到注册中心;
  • 配置config-client-8001读取注册中心;

完成后Eureka注册中心效果图,启动顺序如下:

3、修改客户端配置

通过注册中心获取服务,避免使用URI地址。

经过测试后,正确无误。

  • 提醒:国内如果读取git的配置,可能经常出去无法加载的问题,该案例使用的是Gitee的地址。

五、源代码地址

代码语言:javascript
复制
GitHub地址:知了一笑
https://github.com/cicadasmile/spring-cloud-base
码云地址:知了一笑
https://gitee.com/cicadasmile/spring-cloud-base
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-08-17,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 知了一笑 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、Config简介
  • 二、配置服务端
    • 1、项目结构
      • 2、核心依赖
        • 3、核心配置文件
          • 4、读取配置内容
          • 三、配置客户端
            • 1、核心依赖
              • 2、核心配置文件
                • 3、测试接口
                • 四、基于Eureka配置
                  • 1、项目结构
                    • 2、修改配置项
                      • 3、修改客户端配置
                      • 五、源代码地址
                      相关产品与服务
                      微服务引擎 TSE
                      微服务引擎(Tencent Cloud Service Engine)提供开箱即用的云上全场景微服务解决方案。支持开源增强的云原生注册配置中心(Zookeeper、Nacos 和 Apollo),北极星网格(腾讯自研并开源的 PolarisMesh)、云原生 API 网关(Kong)以及微服务应用托管的弹性微服务平台。微服务引擎完全兼容开源版本的使用方式,在功能、可用性和可运维性等多个方面进行增强。
                      领券
                      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档