第八章 分布式配置中心:Spring Cloud Config

  Spring Cloud Config 是 Spring Cloud 团队创建的一个全新项目,用来为分布式系统中的基础设施和微服务应用提供集中化的外部配置支持, 它分为服务端与客户端两个部分。 其中服务端也称为分布式配置中心, 它是一个独立的微服务应用, 用来连接配置仓库并为客
户端提供获取配置信息、 加密/解密信息等访问接口;而客户端则是微服务架构中的各个微服务应用或基础设施, 它们通过指定的配置中心来管理应用资源与业务相关的配置内容,并在启动的时候从配置中心获取和加载配置信息。 Spring Cloud Config 实现了对服务端和客户端中环境变量和属性配置的抽象映射, 所以它除了适用于 Spring 构建的应用程序之外,也可以在任何其他语言运行的应用程序中使用。 由于 Spring Cloud Config 实现的配置中心默认采用 Git 来存储配置信息, 所以使用 Spring Cloud Config 构建的配置服务器, 天然就支持对微服务应用配置信息的版本管理, 并且可以通过 Git 客户端工具来方便地管理和访问配置内容

构建配置中心

创建一个基础的 Spring Boot 工程, 命名为 config-server, 并在 pom.xml 中引入下面的依赖:

<parent> 
  <groupid>org.springframework.boot</groupid> 
  <artifactid>spring-boot-starter-parent</artifactid> 
  <version>l.3.7.RELEASE</version> 
  <rela七ivePath/> <!-- lookup paren七 from repository --> 
</parent> 
<dependencies>   <dependency>     <groupid>org.springframework.cloud</groupid>     <artifactid>spring-cloud-config-server</artifactid>   </dependency> </dependencies>
<dependencyManagement>   <dependencies>     <dependency>       <groupid>org.springframework.cloud</groupid>       <artifactId>spring-cloud-dependencies</artifactId>       <version>Brixton.SRS</version>       <type>pom</type>       <scope>import</scope>     </dependency>   </dependencies> </dependencyManagement>

创建 Spring Boot 的程序主类, 并添加@EnableConfigServer 注解, 开启 Spring Cloud Config 的服务端功能

@EnableConfigServer 
@SpringBootApplication 
public class Application { 
public static void main(S七ring [] args) { 
  new SpringApplicationBuilder(Application.class) .web(true) .run(args)
  }
}

在application.properties 中添加配置服务的基本信息以及 Git 仓库的相关信息:

spring.applica七ion.name=config-server
server.port=7001 
spring.cloud.config.server.git.uri=http://git.oschina.net/didispace/SpringCloud-Learning/
spring.cloud.config.server.git.searchPaths=spring_cloud_in_action/config-repo 
spring.cloud.config.server.git.username=username 
spring.cloud.config.server.git.password=password 

其中 Git 的配置信息分别表示如下内容:

  • spring.cloud.config.server.git.uri: 配置Git 仓库位置
  • spring.cloud.config.server.git.searchPaths: 配置仓库路径下的相对搜索位置, 可以配置多个
  • spring.cloud.config.server.git.username: 访问 Git 仓库的用户名
  • spring.cloud.config.server.git.password: 访问 Git 仓库的用户密码

客户端配置映射

创建一个Spring Boot应用, 命名为config-client, 并在pom.xml中引入下述依赖

<parent> 
  <groupid>org.springframework.boot</groupid> 
  <artifactid>spring-boo七-starter-parent</artifactid>
  <version>l.3.7.RELEASE</version> 
  <relativePath/> <!-- lookup parent from repository --> 
</parent> 
<dependencies>   <dependency>     <groupid>org.springframework.boot</groupid>     <artifactid>spring-boot-starter-web</artifactid>   </dependency>   <dependency>     <groupid>org.springframework.cloud</groupid>     <artifactId>spring-cloud-starter-config</artifactId>   </dependency> </dependencies>
<dependencyManagement>   <dependencies>     <dependency>       <groupid>org.springframework.cloud</groupid>       <artifactid>spring-cloud-dependencies</artifactid>       <version>Brixton.SRS</version>       <type>pom</type>       <scope江mport</scope>     </dependency>   </dependencies> </dependencyManagement>

创建Spring Boot的应用主类

@SpringBootApplication 
public class Application { 
public static void main(String[] args) { 
        new SpringApplicationBuilder(Application.class) .web(true) .run(args); 
    }
}

创建 bootstrap.properties 配置, 来指定获取配置文件的 config-server位置

//对应配置文件规则中的{application} 部分
spring.application.name=didispace
//对应配置文件规则中的 {profile} 部分 spring.cloud.config.profile
=dev
//对应配置文件规则中的 {label} 部分 spring.cloud.config.label
=master
//配置中心 config-server 的地址 spring.cloud.config.uri=http://localhost:7001/ server.port=7002

猜你喜欢

转载自www.cnblogs.com/hzzjj/p/10263856.html