美文网首页
cloud config

cloud config

作者: 我是啵啵 | 来源:发表于2019-11-10 19:57 被阅读0次

    作用 集中管理配置文件
    动态 服务不用重启


    image.png

    创建一个github仓库
    在本地克隆下来
    gitbush到某一个目录
    git clone https://github.com/linjinboqq/microservice-cloud-config.git
    将yml推送到git hub

    $ cd microservice-cloud-config # 添加到暂存区
     $ git add microservice-config-application.yml # 提交到本地库
     $ git commit -m "first commit" microservice-config-application.yml # 推送到远程库origin 的 master 主分支上 
    $ git push origin master
    

    config工程

    写pom

    <dependencies>
            <!-- Spring Cloud Config配置中心依赖 -->
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-config-server</artifactId>
            </dependency>
    
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-web</artifactId>
            </dependency>
    
        </dependencies>
    
    
    yml
    自己的配置地址
    https://github.com/linjinboqq/microservice-cloud-config.git
    
    server:
      port: 5001
    
    spring:
      application:
        name: microservice-config
      cloud:
        config:
          server:
            git: # 远程库的git地址
              uri: https://github.com/linjinboqq/microservice-cloud-config.git
    

    配置类上开启
    @EnableConfigServer

    测试访问
    http://localhost:5001/microservice-config-application-prod.yml
    prod 可以改dev 得到不同的配置

    测试错误 好像解析出来的配置文件出了问题
    问题解决
    一直在github上按照控制台提示改yml就行了

    image.png

    客户端的config配置

    流程
    在bootstrap.yml 中指定了configserver 就是之前那一个微服务
    在configserver 中的yml 中指定了 github 仓库
    再通过客户端的bootstrap.yml 其他的配置信息
    去找对应的配置

    spring:
      cloud:
        config:
          name: microservice-config-application #github上的配置名称,注意没有yml后缀名
          profile: dev    #本次访问的环境配置项
          label: master   #远程库的分支名
          uri: http://localhost:5001 #Config配置中心地址,通过它获取microservice-config-application.yml配置信息
    

    name:是github上的文件名

    microservice-config-application #github上的配置名称,注意没有yml后缀名
    name: microservice-config-application
    两个yml bootstrap 优先级更高
    cotroller

    package com.mengxuegu.springcloud.controller;
    
    import org.springframework.beans.factory.annotation.Value;
    import org.springframework.web.bind.annotation.GetMapping;
    import org.springframework.web.bind.annotation.RestController;
    
    
    @RestController
    public class ConfigClient {
    
        @Value("${server.port}")
        private String port;
    
        @Value("${spring.application.name}")
        private String applicationName;
    
    
        @GetMapping("/config")
        public String config() {
            String content = "applicationName: " + applicationName + ", port: " + port;
            System.out.println(content);
            return content;
        }
    }
    
    

    测试:

    指定启动的是8080 端口
    但加载了github 上的端口之后就变为了4001

    image.png

    实战

    将创建一个Eureka服务与Product商品提供者服务,它们两个微服务的配置信息均从GitHub获取 ,从而实现 统一配置分布式管理,完成多环境的变量

    config euraka

    模块构建
    比之前的
    多了一个config 客户端依赖

     <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
            </dependency>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-starter-config</artifactId>
                <version>2.0.2.RELEASE</version>
            </dependency>
    

    在yml 中设置之后
    就能获取到配置信息 然后加载
    profile: prod #本次访问的环境配置项
    没有红的 自我保护机制

    productconfig

    一样的 pom +config
    然后 启动类上写@enable eruaka
    就能注册到服务端
    没啥可说

    image.png

    相关文章

      网友评论

          本文标题:cloud config

          本文链接:https://www.haomeiwen.com/subject/swesbctx.html