美文网首页
SpringCloud 之 分布式配置中心

SpringCloud 之 分布式配置中心

作者: 索性流年 | 来源:发表于2020-05-09 11:00 被阅读0次

    为什么要使用分布式配置中心?

    在微服务中,如果使用传统方式管理配置文件,配置文件管理起来非常复杂。

    什么是配置中心?

    在微服务中使用同一个服务器去管理所有配置文件,能够实现后台可管理,当服务器正在运行的时候,如果配置文件需要改变,可以实现不需要重启服务器,实时更改配置文件信息。

    分布式配置中心框架:

    阿波罗携程写分布式配置中心有图形界面可管理配置文件信息,配置文件信息存放数据库里面
    SpringCloud Config没有后台可管理分布式配置中心,配置文件信息存放在版本控制器里面(git|svn)
    使用Zookeeper实现分布式配置中心,持久节点+事件通知

    搭建Git环境配置文件

    配置文件-.(dev- test、pre、prd)
    配置文件命名规范: ctient服务名称(注册中心名称)一版本: yml

    image.png

    搭建分布式配置中心(Server)

    pml.xml 引入依赖

    <dependency>
       <groupId>org.springframework.boot</groupId>
       <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    
    <dependency>
       <groupId>org.springframework.cloud</groupId>
       <artifactId>spring-cloud-config-server</artifactId>
    </dependency>
           
    <dependency>
       <groupId>org.springframework.cloud</groupId>
       <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
    </dependency>
    
    

    application.yml 添加配置

    
    ###服务注册到eureka地址
    eureka:
      client:
        service-url:
          defaultZone: http://localhost:8100/eureka
    spring:
      application:
        ###注册中心应用名称
        name: config-server
      cloud:
        config:
          server:
            git:
              ### git环境地址
              uri: https ://gitee.com/itmayi/config_ 003.git
              ####搜索目录
              search-paths :
                - config
              ###读取分支(master主分支)
          label: master
    ####端口号
    server:
      port: 8888
    
    

    项目启动类添加 @EnableConfigServer 注解

    
    @SpringBootApplication
    @EnableEurekaClient
    //将服务作为分布式配置中心
    @EnableConfigServer
    public class SpringcloudConfigApplication {
    
        public static void main(String[] args) {
            SpringApplication.run(SpringcloudConfigApplication.class, args);
        }
    
    }
    
    

    获取配置文件(client)

    新建消费者工程pom导入依赖

    
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
    </dependency>
    
    <!-- actuator监控中心 -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-actuator</artifactId>
    </dependency>
    
    

    yml配置

    
    #配置会员服务端口号
    server:
      port: 8000
    #服务别名不区分大小写
    spring:
      application:
        name: app-member
      cloud:
        config:
          discovery:
            service-id: config-server
            enabled: true
          profile: dev
    
    eureka:
      client:
        #注册中心地址
        service-url:
          defaultZone: http://localhost:8100/eureka
        #是否需要添加到注册中心
        register-with-eureka: true
        #是否需要检索配置中心信息
        fetch-registry: true
    
    

    新建IndexService.class

    
    /*
    * configCline获取配置文件
    * */
    @RestController
    /*实时刷新配置*/
    @RefreshScope
    public class IndexService {
    
        @Value("@{userAge}")
        public String userAge;
    
        @GetMapping("/getUserAge")
        public String getUserAge(){
            return userAge;
        }
    }
    
    

    手动刷新配置文件调用接口

    • (服务域名:端口号/actuator/refresh)

    http://127.0.0.1:8882/actuator/refresh

    相关文章

      网友评论

          本文标题:SpringCloud 之 分布式配置中心

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