Spring Cloud学习 -- 配置管理

来源:互联网 发布:网页美工教程 编辑:程序博客网 时间:2024/06/05 23:53

## Spring Cloud Config

  简单介绍一下如何使用SpringCloud搭建配置管理。

  搭建配置管理会用到Spring Cloud Config,该项目是Spring Cloud的子项目之一。简单介绍一下 Spring Cloud Config:

Spring Cloud Config 项目

  • 提供服务端和客户端支持
  • 集中式管理分布式环境下的应用配置
  • 基于Spring环境,无缝与Spring应用集成
  • 可用于任何语言开发的程序
  • 默认实现基于git仓库,可以进行版本管理
  • 可替换 自定义实现

Spring Cloud Config Server 作为配置中心服务端

  • 拉取配置时更新git仓库副本,保证是最新结果
  • 支持数据结构丰富,yml,json,properties
  • 配合eureke可实现服务发现,配合cloud bus可实现配置推送更新
  • 配置存储基于git仓库,可进行版本管理
  • 简单可靠,有丰富的配套方案

Spring Cloud Config Client 默认客户端实现

  • SpringBoot项目不需要改动任何代码,加入一个启动配置文件指明使用ConfigServer上哪个配置文件即可。

简单实例:

1.添加依赖

  新建一个SpringBoot项目,在pom.xml中加入 spring-cloud-config

<dependency>    <groupId>org.springframework.cloud</groupId>    <artifactId>spring-cloud-config-server</artifactId></dependency>

2.开启config server

  在入口类上加上@EnableConfigServer注解即可开启config server

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

3.application.yml中配置服务信息以及git信息,例如:

spring:  application:    name: config-service                              #项目名  cloud:    config:        server:            git:                uri: https://.../demo-config.git       #配置git仓库位置                username:                              #访问git仓库的用户名                password:                              #访问git仓库的密码  

4.验证

  此时项目的服务配置都集中在git仓库中,此时项目启动时需要从git仓库中拉去代码,此时项目角色为客户端。

  此时项目的配置如下:

bootstrap.yml

spring:  profiles:    active: ${SPRING_PROFILES_ACTIVE:dev}    #对应{profile}部分  application:    name: auth-server                        #对应{application}部分  cloud:    config:        enabled: true        discovery:                           #服务发现,从服务注册中心获取服务信息            enabled: true            service-id: CONFIG-SERVICE       #指定配置中心的service-id,便于扩展为高可用配置集群。  

特别注意:

  • 配置中心的地址一定要放在bootstrap.yml,这个配置文件是由“根”上下文优先加载,可以保证程序启动之初就感知到远程配置中心的存在,并从远程获取配置,随后继续启动系统,这点十分重要。
  • application.yml,加载顺序低于前者,如果配置中心地址放在这里,并且你远程配置了一些启动相关的必要参数,那么,你的程序很可能由于缺少参数而启动失败。

  在微服务架构中,就要实现高可用的服务,配置中心也是如此,所以我们需要将配置中心也注册在注册中心中,这样客户端就同样可以以服务的访问方式来获取配置信息。

原创粉丝点击