config:配置中心

Spring Cloud Config 为分布式系统中的外部配置提供服务器端和客户端支持。使用 Config Server,您可以集中管理所有环境中应用程序的外部配置。

config:配置中心_第1张图片

Spring Cloud Config就是一个配置中心,所有的服务都可以从配置中心取出配置,而配置中心又可以从GitHub远程仓库中获取云端的配置文件,这样只需要修改GitHub中的配置即可对所有的服务进行配置管理了

服务端配置

创建一个新项目用于配置中心的服务器,并将其注册到eureka服务器中

先导入依赖


   
        org.springframework.cloud
        spring-cloud-config-server
   

      
        org.springframework.cloud
        spring-cloud-starter-netflix-eureka-client
   

启动类添加上注解

@SpringBootApplication
@EnableConfigServer
public class ConfigApplication {
    public static void main(String[] args) {
        SpringApplication.run(ConfigApplication.class, args);
    }
}

修改配置文件

server:
  port: 8700
spring:
  application:
    name: configserver
eureka:
  client:
    service-url:
      defaultZone: http://localhost:8801/eureka, http://localhost:8802/eureka

然后在本地创建一个git仓库用于保存配置文件,注意文件名称最好是{服务名称}-{环境}.yml

修改configserver的配置文件

spring:
  cloud:
    config:
      server:
        git:
            # 这里填写的是本地仓库地址,远程仓库直接填写远程仓库地址 http://git...
          uri: file://D:\configRepo
          # 默认分支设定为你自己本地或是远程分支的名称
          default-label: master

启动配置服务器,可以通过以下格式进行配置文件的访问

  • http://localhost:8700/{服务名称}/{环境}/{Git分支}

  • http://localhost:8700/{Git分支}/{服务名称}-{环境}.yml

比如

http://localhost:8700/bookservice/prod/main

localhost:8700/master/bookservice-dev.yml

除了使用Git来保存之外,还支持一些其他的方式

客户端配置

服务端配置完成之后,还需要配置一下客户端。如果云端存储着所有配置,我们可以删除原来的application.yml文件(也可以保留,最后无论是远端配置还是本地配置都会被加载),改用bootstrap.yml(在application.yml之前加载,可以实现配置文件远程获取)

先导入相关依赖


    org.springframework.cloud
    spring-cloud-starter-config


    org.springframework.cloud
    spring-cloud-starter-bootstrap

配置bootstrap.yml文件

spring:
  cloud:
    config:
        # 名称,其实就是文件名称
      name: bookservice
      # 配置服务器的地址
      uri: http://localhost:8700
      # 环境
      profile: prod
      # 分支
      label: main

这样就完成了远程调用服务端的配置

你可能感兴趣的:(java,spring,spring,boot)