SpringCloud - config 统一配置中心

一、创建一个Eureka注册中心
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同一配置文件中心
1、导入依赖
<!-- eureka client -->
<dependency>
	<groupId>org.springframework.cloud</groupId>
	<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>

<!-- config server -->
<dependency>
	<groupId>org.springframework.cloud</groupId>
	<artifactId>spring-cloud-config-server</artifactId>
</dependency>
2、配置文件
server:
  port: 8000

spring:
  application:
    name: config
  cloud:
    config:
      server:
        git:
          uri: https://gitee.com/StormEnum/config   #存放配置文件的仓库
          username: chuangye9898@126.com
          password: 密码(可以使用本机公钥)
eureka:
  instance:
    hostname: 127.0.0.1
  client:
    service-url:
      defaultZone: http://127.0.0.1:8761/eureka/
3、启动类上添加注解
@EnableEurekaClient
@EnableConfigServer
三、创建一个Eureka客户端(注册服务、调用服务)
1、导入依赖
<!-- eureka client -->
<dependency>
	<groupId>org.springframework.cloud</groupId>
	<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>

<!-- config client-->
<dependency>
	<groupId>org.springframework.cloud</groupId>
	<artifactId>spring-cloud-config-client</artifactId>
</dependency>
2、配置文件 (原本的配置文件,但这里我们不这么用)
spring:
  application:
    name: order
  datasource:
    username: yancy
    password: yancy
    url: jdbc:mysql://127.0.0.1:3306/yan_1808
    driver-class-name: com.mysql.jdbc.Driver
    type: com.alibaba.druid.pool.DruidDataSource   #druid连接池
    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统一配置中心后
server:
  port: 8100

spring:
  application:
    name: order

  cloud:
    config:
      discovery:
        enabled: true
        service-id: CONFIG
      label: master 
      profile: dev  #多环境,dev表示是开发环境
      
#我们将其它配置信息放到远程的git上,此处以码云为示例

此处我们在git上编写了两个配置文件
1.order-dev.yml
在这里插入图片描述
2.order-test.yml
在这里插入图片描述
在这里测试一下configserver,8000是我设置config-server的端口号
在这里插入图片描述
竟然还可以转换格式
在这里插入图片描述
擦,还可以转换为json格式
在这里插入图片描述
牛逼的存在

可以在远程git上读取配置信息

4、重点!!!!

将order项目中的application.yml更改为bootstrap.yml,bootstrap的权限最高首先加载

客户端启动项目,首先要加载配置文件,但是本地没有配置文件,就好比让厨师做饭,但是不给提供食材,厨师愿意吗?当然是不愿意了,同理项目也不愿理,结果就是项目和厨师一样只能罢工!!,

5、查看order客户端是否拿到配置
/**
 * Created by StormEnum on 2019/4/4 21:38.
 */
@RestController
@RequestMapping("/env")
public class EnvController {
    
    //SpringBoot获取自定义配置信息
    @Value("${env}")
    private String env;

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

访问一下:
在这里插入图片描述
远程git上拉取配置文件配置成功
将配置更改为 profile: test
在这里插入图片描述
多环境生效!!!

需要注意:我们客户端order的本地项目中并没有配置Eureka注册中心地址,它是怎么找到Eureka的?

Eureka注册中心默认端口号为:8761,当本地没有配置时,会自动寻找8761,这是Eureka在一台服务器上可以只根据默认端口号端口号就可以找到,但如果Eureka和order分布在不同的服务器上,就必须将连接Eureka的url配置放在项目本地

四、配置中心高可用

多配置及格config即可,
我们简单看一下
我配置三台config,分别为 8000、8001、8002
在这里插入图片描述
我们启动我们的order客户端,看一下order加载的是哪一个config配置中心

第一次:
在这里插入图片描述
第二次:
在这里插入图片描述
第三次:
在这里插入图片描述
三个config都可以被加载,也是根据负载均衡进行加载的

好了,不骗你们了,哪有那么巧,启动三次正好将三个config加载一遍,我是启动了七遍才看到了三个config被加载一遍的!!!!!

五、注意

当Eureka端口号不是默认的8761时候,需要将连接Eureka的配置拿到本地来,是将全部环境的的连接Eureka的配置都拿出来,否则config会将其他环境的配置(连接Eureka的配置)同步到你使用的环境中,所以嘛,还是使用8761吧,免得掉进坑里面出不来!!!!

客户端拉取配置文件试根据名称寻找的,比如我们的order客户端拉取git上的配置是寻找order的配置文件,名称不同是找不到的!!!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值