使用SpringCloud实现Java分布式开发【part-6】:Spring Cloud Config分布式配置中心的搭建及使用

SpringCloud简介

Spring Cloud是Spring旗下的项目之一
Spring Cloud并不是一个组件 而是许多组件的集合
其将当下非常流行的一些技术整合到了一起 实现了多个分布式开发中的重要功能
协调了分布式环境中各个系统 并且为各类服务提供模板性的配置

其主要涉及的组件包括:

  • Eureka:注册中心
  • Zuul或Spring Cloud Gateway:服务网关
  • Ribbon:负载均衡
  • Feign:服务调用
  • Hystrix或Resilience4j:熔断器

除此之外 还有一些很有用的组件 比如Spring Cloud ConfigSpring Cloud Bus

【在本篇中 将介绍Spring Cloud Config分布式配置中心】

Spring Cloud Config分布式配置中心

在分布式系统中由于服务数量非常多 配置文件分散在不同的微服务项目中 管理不方便
为了方便配置文件集中管理 就需要用到分布式配置中心组件

Spring Cloud还提供了Spring Cloud Config 它支持将配置文件放在配置服务的本地 也支持放在远程Git仓库中(如Github或码云)

使用Spring Cloud Config分布式配置中心后的架构如下图:
使用SpringCloud实现Java分布式开发【part-6】:Spring Cloud Config分布式配置中心的搭建及使用_第1张图片

一、搭建步骤

首先 创建git仓库 码云和Github都可以 这里以码云为示例:
使用SpringCloud实现Java分布式开发【part-6】:Spring Cloud Config分布式配置中心的搭建及使用_第2张图片
使用SpringCloud实现Java分布式开发【part-6】:Spring Cloud Config分布式配置中心的搭建及使用_第3张图片
新建一个文件作为配置文件:
使用SpringCloud实现Java分布式开发【part-6】:Spring Cloud Config分布式配置中心的搭建及使用_第4张图片
在这里插入图片描述

配置文件的命名方式:{application}-{profile}.yml 或 {application}-{profile}.properties

  • application为应用名称
  • profile用于区分开发环境,测试环境、生产环境等

使用SpringCloud实现Java分布式开发【part-6】:Spring Cloud Config分布式配置中心的搭建及使用_第5张图片
创建配置文件:
在这里插入图片描述
配置文件创建完毕后 开始搭建配置中心

添加配置中心的Maven依赖:

<dependency>
	<groupId>org.springframework.cloudgroupId>
	<artifactId>spring-cloud-config-serverartifactId>
dependency>

@EnableConfigServer注解开启SpringCloud配置中心服务:

@SpringBootApplication
// 开启SpringCloud配置中心服务
@EnableConfigServer
public class ConfigServerApplication {
    public static void main(String[] args) {
        SpringApplication.run(ConfigServerApplication.class,args);
    }
}

在配置文件中进行配置:

由于配置中心本质上也是一个微服务 因此 同样需要注册到Eureka服务注册中心
然后需要指定你自己的git仓库的地址 如果是私有的仓库 还需要配置你的用户名和密码
当然 如果是公用仓库 则注释掉username和password即可

server:
  port: 12000

spring:
  application:
    name: config-server
  cloud:
    config:
      server:
        # 指定git仓库的地址
        git:
          uri: https://gitee.com/zhangsan/spring-cloud-config.git
          username: zhangsan
          password: 123456789
    
eureka:
  client:
    service-url:
      # 设置Eureka服务的默认地址
      defaultZone: http://127.0.0.1:10086/eureka

测试成功:
使用SpringCloud实现Java分布式开发【part-6】:Spring Cloud Config分布式配置中心的搭建及使用_第6张图片
若在git仓库中修改了配置文件的内容 那么在配置中心服务中也会及时更新

搭建完毕 那么接下来就是在项目中使用了

二、使用步骤

配置文件信息不再由微服务项目提供 而是直接从配置中心获取

首先 在要使用配置中心服务的项目中添加配置中心的启动器依赖:

<dependency>
	<groupId>org.springframework.cloudgroupId>
	<artifactId>spring-cloud-starter-configartifactId>
	<version>2.1.1.RELEASEversion>
dependency>

接下来 就可以将原来的保存在本地的配置文件删除了

然后创建一个配置文件 名为bootstrap.yml 这是SpringBoot工程中默认的配置文件
其用于配置一些项目中较为固定的配置项 若是经常变动的配置项 则应配置于git上的配置文件中

在bootstrap.yml中编写配置:

spring:
  cloud:
    config:
      # 与仓库中的配置文件的application名称保持一致
      name: user
      # 与仓库中的配置文件的profile名称保持一致
      profile: dev
      # 与仓库中的配置文件的所属版本或分支保持一致
      label: master
      discovery:
        # 开启使用配置中心 默认未开启
        enabled: true
        # 配置中心的服务名 要与当前项目的配置中心模块的application name保持一致
        service-id: config-server

eureka:
  client:
    service-url:
      # 设置Eureka服务的默认地址
      defaultZone: http://127.0.0.1:10086/eureka

测试成功:
在这里插入图片描述
使用SpringCloud实现Java分布式开发【part-6】:Spring Cloud Config分布式配置中心的搭建及使用_第7张图片
如此 即可实现将项目的配置文件真正保存到云端了


你可能感兴趣的:(框架,分布式,java,spring,git,springconfig)