SpringCloud Config简介及配置

SpringCloud Config 简介

      SpringCloud Config为微服务架构中的微服务提供集中化的外部配置支持,配置服务器为各个不同微服务应用的所有环境提供了一个中心化的外部配置。
      SpringCloud Config分为服务端和客户端两个部分。
      服务端也称为分布式配置中心,它是一个独立的微服务应用,用来连接配置服务器并为客户端提供获取配置信息,加密/解密信息等访问接口。
      客户端则是通过指定的配置中心来管理应用资源,以及与业务相关的配置内容,并在启动的时候从配置中心获取和加载配置信息,配置服务器默认采用git来存储配置信息,这样就有助于对环境配置进行版本管理,并且可以通过git客户端工具来方便的管理和访问配置内容。

SpringCloud Config 统一配置中心

一、创建一个Eureka注册中心: config-eureka项目

1. 导入依赖

		<dependency>
			<groupId>org.springframework.cloud</groupId>
			<artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
		</dependency>

2. 启动类添加注解

@SpringBootApplication
@EnableEurekaServer
public class ConfigEurekaApplication {

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

}

3. yml配置文件配置

server:
  port: 8761

eureka:
  instance:
    hostname: 127.0.0.1
  client:
    service-Url:
      defaultZone: http://127.0.0.1:8761/eureka/
    register-with-eureka: false
    fetch-registry: false
  server:
    enable-self-preservation: false

这样一个注册中心就搭建完成了!!!

二、创建一个config统一配置文件中心: config-server项目

1. 导入依赖

<!-- config server -->
		<dependency>
			<groupId>org.springframework.cloud</groupId>
			<artifactId>spring-cloud-config-server</artifactId>
		</dependency>
<!-- eureka client -->
		<dependency>
			<groupId>org.springframework.cloud</groupId>
			<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
		</dependency>

2. 启动类上添加注解

@SpringBootApplication
@EnableEurekaClient
@EnableConfigServer
public class ConfigServerApplication {

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

}

3. yml配置文件配置

server:
  port: 8000

spring:
  application:
    name: config-server
  cloud:
    config:
      server:
        git:
          uri: https://github.com/dhs-13853761725/springcloud-config/ #存放配置文件的仓库
          #username:			#如果仓库是公共的不需要输入用户名和密码,否则必须要输入
          #password:			#密码(可以使用本机公钥)
eureka:
  instance:
    hostname: 127.0.0.1
  client:
    service-url:
      defaultZone: http://127.0.0.1:8761/eureka/

到此就创建完了!!!

三、创建一个Eureka、Client客户端(注册服务、调用服务)

1. 导入依赖

		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-web</artifactId>
		</dependency>
<!-- config client-->
		<dependency>
			<groupId>org.springframework.cloud</groupId>
			<artifactId>spring-cloud-starter-config</artifactId>
		</dependency>
<!-- eureka client -->
		<dependency>
			<groupId>org.springframework.cloud</groupId>
			<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
		</dependency>

2. 配置文件配置 (原本的配置文件,但这里我们不这么用)

spring:
  application:
    name: config-client
  datasource:
    username: root
    password: 1
    url: jdbc:mysql://127.0.0.1:3306/dhs
    driver-class-name: com.mysql.jdbc.Driver
    type: com.alibaba.druid.pool.DruidDataSource
    dbcp2:
      initial-size: 5
      min-idle: 5
      max-idle: 5

eureka:
  instance:
    hostname: 127.0.0.1
  client:
    service-url:
          defaultZone: http://127.0.0.1:8761/eureka/

3. 使用config统一配置中心后的配置文件
注意:将项目中的application.yml更改为bootstrap.yml,bootstrap的权限最高首先加载

spring:
  application:
    name: config-client

  cloud:
    config:
      discovery:
        enabled: true
        service-id: config-server
      label: master
      profile: dev #多环境,dev表示是开发环境

server:
  port: 2001
  # 我们将其它配置信息放到远程的git上,此处以github为示例

然后在git上编写了两个配置文件如下:
在这里插入图片描述

  1. config-client-dev.yml配置文件内容如下:
    在这里插入图片描述
  2. config-client-test.yml配置文件内容如下:
    在这里插入图片描述
    4. 创建一个controller层,查看config-client客户端是否拿到配置信息
@RestController
public class EnvController {

    //SpringBoot获取自定义配置信息
    @Value("${env}")
    private String env;

    @GetMapping("getEnv")
    public String getEnv(){
        return env;
    }

}

启动三个项目,然后先访问config-server,查看是否拿到了配置文件
访问:http://localhost:8000/config-client-dev.yml
8000是config-server的端口号,config-client-dev.yml是git上的配置文件名
在这里插入图片描述
可以转换成另外两种格式:
在这里插入图片描述
在这里插入图片描述
这就说明可以远程获取git配置了!!!
然后再访问:http://localhost:2001/getEnv
在这里插入图片描述
恭喜,你可以远程获取git上的配置信息了。。。
将配置文件中的profile更改为 profile: test
在这里插入图片描述
多环境生效!!!
到此config统一配置就配置完成了。。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值