spring-cloud 笔记

spring-cloud之配置管理:


spring-cloud使用spring-cloud-config模块提供配置管理服务,可以使用两种方式:基于共享文件系统形式,基于配置管理形式。通过配置管理,将项目的配置文件统一到配置管理服务进行管理,所有的服务实例在启动时都需要从配置管理服务获得配置文件,进行服务实例的配置,通过提供统一的配置管理服务,根据profile确定具体的环境配置,可以保证各个实例的配置一致性,避免传统开发形式下,部署服务,进行配置常发生的错配,漏配等,避免因配置问题导致的各种难以排查的系统异常。防止了配置漂移的发生。

基于文件系统的配置管理

配置服务的核心依赖


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

application.yml的核心配置

server:
  port: 8888
spring:
  profiles:
    active: native
  cloud:
    config:
      server:
        native:
          searchLocations: file:///Users/username/CodingSpace/IdeaProject/cloud-project/config-service/src/main/resources/config/licensingservice

指定了配置服务的端口,默认生效的配置环境此处为本地文件系统方式,配置文件所处的系统路径。获得配置时,默认配置总会返回,然后根据具体环境配置,进行相应的属性值覆盖。

基于配置管理的配置服务,如Git

application.yml核心配置

server:
  port: 8888
spring:
  cloud:
    config:
      server:
        git: 
          uri: http://xxx.com.cn/xxx.git
          search-paths: licensingservice, userservice
          username: xxx
          password: xxx

配置服务启动类核心配置

@SpringBootApplication
@EnableConfigServer // 标记为spring cloud config 服务
public class ConfApplication {

    public static void main(String[] args) {
        SpringApplication.run(ConfApplication.class, args);
    }
}

业务服务连接配置服务

配置服务客户端核心依赖

        
            org.springframework.cloud
            spring-cloud-config-client
        

bootstrap.yml核心配置

server:
  port: 8080
spring:
  application:
    name: licensingservice
    profiles:
      active: dev
    cloud:
      config:
        uri: http://localhost:8888

配置服务端口,应用名称此处与配置服务中文件的服务名称一致,读取配置的环境为dev,设置配置服务的访问的uri

服务启动时加载先加载bootstrap.yml文件,所有默认配置项都会被自动进行设置,其它自定义配置,需要在代码中手动进行配置

使用spring的

value()

进行配置注入

要使配置配置服务配置文件修改后可以被应用加载,可以使用refresh端点,先配置刷新注解

@SpringBootApplication()
@RefreshScope
public class LicensingServiceApplication {
}

在启动类增加注解,配置文件修改后可以调用http://ip:port/refresh 强制重新加载配置数据。

你可能感兴趣的:(看书练习随笔,springcloud,配置,笔记)