springcloudconfig本地配置中心_SpringCloud Config分布式配置中心

SpringCloud Config分布式配置中心

442fba984017cac88c4c752ed016e472.png
在这里插入图片描述
  • 微服务意味着要将单体应用中的业务拆分成一个个子服务,每个服务的粒度相对较小,因此系统中出现大量的服务。由于每个服务都必须要相关的配置才能运行,所以一套集中式的、动态的配置管理是必不可少的。
  • SpringCloud提供了  SpringCloud Config分布式配置中心 对于我们 每个微服务都有自己的 application.yml  分布式配置中心必不可少
  • (推荐大家使用 ==Apollo(阿波罗)是携程框架部门研发的分布式配置中心,能够集中化管理应用不同环境、不同集群的配置,配置修改后能够实时推送到应用端,并且具备规范的权限、流程治理等特性,适用于微服务配置管理场景。==

github地址  :https://github.com/ctripcorp/apollo

简介

SpringCloud Config为微服务架构中的微服务提供集中化的外部配置,配置服务器为各个不同微服务应用的所有环境提供一个中心化的配置

  • 分为 服务端和客户端两部分
3e204efc74fcf815df333f7be5ff3a74.png
在这里插入图片描述

需要我们搭配服务器 或者 github 来使用

创建 仓库

bd815952edd8d5a459668b29049480b8.png
在这里插入图片描述

在我们的对应yml文件中增加配置

config:  info: "dev"config:  info: "test"config:  info: "prod"
服务端
  1. 新建 server端微服务模块 cloud-config-server
  2. pom
                org.springframework.cloud        spring-cloud-config-server                    org.springframework.cloud        spring-cloud-starter-netflix-eureka-client                org.springframework.boot        spring-boot-starter-web                org.springframework.boot        spring-boot-starter-actuator                    org.springframework.boot        spring-boot-devtools        runtime        true                org.projectlombok        lombok        true                org.springframework.boot        spring-boot-starter-test        test    
  1. yml文件
server:  port: 3344spring:  application:    name: cloud-config-center #注册进Eureka服务器的微服务名  cloud:    config:      server:        git:          uri: https://github.com/angenin/springcloud-config.git  #git的仓库地址          search-paths:   #搜索目录            - springcloud-config      label: master   #读取的分支eureka:  client:    service-url:       defaultZone: http://localhost:7001/eureka   #服务注册到的eureka地址      

主启动

@EnableConfigServer@SpringBootApplicationpublic class ConfigCenter {        public static void main(String[] args) {        SpringApplication.run(ConfigCenter.class, args);    }    }
客户端
  1. 新建微服务模块cloud-config-client
  2. pom
                org.springframework.cloud        spring-cloud-starter-config                    org.springframework.cloud        spring-cloud-starter-netflix-eureka-client                org.springframework.boot        spring-boot-starter-web                org.springframework.boot        spring-boot-starter-actuator                    org.springframework.boot        spring-boot-devtools        runtime        true                org.projectlombok        lombok        true                org.springframework.boot        spring-boot-starter-test        test    
  1. yml文件   ## bootstrap.yml(系统级别的配置文件)740b034c4d4f887927e1a3d4d06dc813.png
server:  port: 3355spring:  application:    name: config-client  cloud:    config: #config客户端配置      label: master   #分支名称      name: config    #配置文件名称       这三个综合:master分支上的config-dev.yml的配置文件      profile: dev    #读取后缀名称       被读取到http://config-3344.com:3344/master/config/dev      uri: http://localhost:3344  #配置中心地址eureka:  client:    service-url:      defaultZone: http://localhost:7001/eureka   #服务注册到的eureka地址
  1. 启动类
@EnableEurekaClient@SpringBootApplicationpublic class ConfigClient {        public static void main(String[] args) {        SpringApplication.run(ConfigClient.class, args);    }    }
  1. 新建controller 读取我们的配置文件
@RestControllerpublic class ConfigClientController {    @Value("${config.info}")	//spring的@Value注解    private String configInfo;    @GetMapping("/configInfo")    public String getConfigInfo(){        return configInfo;    }}

启动 eureka 服务端 与 Config Server  与 Config client

  • 测试:http://localhost:3355/configInfo      -----会返回github 上的配置文件内容

动态刷新问题
  1. 需要在client 增加 监控
         org.springframework.boot        spring-boot-starter-actuator    
  1. yml添加
#暴露监控端点management:  endpoints:    web:      exposure:        include: "*"
  1. 在ConfigClientController类上加上@RefreshScope注解 完美解决

个人博客: http://blog.yanxiaolong.cn/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值