一、创建配置中心微服务4041

spring cloud cloud 配置中心_配置文件

把所有配置文件都扔到git仓库里,修改配置文件,只需要发送一个post请求,不需要重启项目就能完成更新

git创建仓库

1.1 添加依赖

其实和eureka一样,config也是个服务端,其他微服务连到这个模块就相当于客户端。

spring cloud cloud 配置中心_微服务_02

注意:这个默认版本是2.2.1,其他版本如2.2.2会出现jar包冲突,nosuchmethod错误

spring cloud cloud 配置中心_微服务_03

1.2 配置文件

注意:你的git仓库是私有的就加上账号密码,公有的就可以不加

server:
  port: 4041

eureka:
  client:
    service-url:
      defaultZone: http://localhost:6061/eureka
spring:
  application:
    name: config
  cloud:
    config:
      server:
        git:
          #git仓库地址
          uri: https://gitee.com/zhanzhaoxu/springcloud01config.git
          #git仓库目录的搜索位置, /**代表所有位置
          search-paths: /**
          username: zhanzhaoxu@163.com
          password: **********
      label: master #git仓库分支

1.3 启动类

spring cloud cloud 配置中心_微服务_04

二、测试7071配置文件

2.1 在7071配置文件随便加一个配置进行测试


spring cloud cloud 配置中心_配置文件_05

在controller去取到这个配置

spring cloud cloud 配置中心_配置文件_06

2.2 将7071配置文件改名后传到git仓库

application.yml---------->

spring cloud cloud 配置中心_微服务_07

命名规则,改配置文件名字按以下规则来取

1. /{label}/{application}-{profile}.yml
	http://localhost:4041/master/consumerstudent-dev.yml
2. /{application}-{profile}.yml
	http://localhost:4041/consumerstudent-dev.yml
3. /{application}/{profile}/{label}
	http://localhost:4041/consumerstudent/dev/master
	http://localhost:4041/consumerstudent/dev


spring cloud cloud 配置中心_post请求_08

spring cloud cloud 配置中心_微服务_09

2.3 通过配置中心拿到文件

找到GitHub的配置文件

spring cloud cloud 配置中心_微服务_10

三、其他微服务设置

7071就是4041的客户端,7071找4041,4041去找git拿配置文件

3.1 添加依赖

一定跟配置中心服务端的依赖分清楚,默认版本都是2.2.1

spring cloud cloud 配置中心_微服务_11

3.2 bootstrap.yml

spring cloud cloud 配置中心_post请求_12

7071连到4041配置中心,去拿配置文件

spring:
  cloud:
    config:
      label: master
      name: module02
      profile: dev
      uri: http://localhost:4041
      #http://localhost:4041/master/module02-dev.properties

注意一定先启动4041配置中心,再启动其他微服务,否则找不到配置文件无法初始化。

3.3 测试

7071可以拿到配置文件中的内容


spring cloud cloud 配置中心_post请求_13

3.4 修改配置文件

点击编辑,之后提交即可

spring cloud cloud 配置中心_config_14

刷新4041配置文件会更新


spring cloud cloud 配置中心_post请求_15

但7071访问不会刷新,必须重启7071的服务才可以。


spring cloud cloud 配置中心_配置文件_16

3.5 优点:配置动态刷新

3.5.1 添加监控插件的依赖

spring cloud cloud 配置中心_微服务_17

3.5.2 配置文件


spring cloud cloud 配置中心_config_18

3.5.3 controller加注解

spring cloud cloud 配置中心_微服务_19

3.5.4 发送post请求即可修改,不需要重启7071服务

显示[]时代表没有任何更改

spring cloud cloud 配置中心_post请求_20

修改过后4041已更新,但7071未更新

spring cloud cloud 配置中心_微服务_21

此时发送post请求进行更新,会显示哪里修改了


spring cloud cloud 配置中心_微服务_22

此时不需要重启7071的服务,配置文件已更新

spring cloud cloud 配置中心_微服务_23

练习:修改8081,同7071

3.6 修改配置8081

3.6.1 添加依赖

监控点和配置中心依赖都要加

spring cloud cloud 配置中心_post请求_24

3.6.2 配置文件

将两个配置文件照着7071一样改,在配置文件随便加一个值。文件拷出去,改名上传到git,二者会合为一个

spring cloud cloud 配置中心_post请求_25

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MPN8i3oh-1605515375556)(C:/Users/CEO/AppData/Roaming/Typora/typora-user-images/image-20201116134848813.png)]

spring cloud cloud 配置中心_config_26

请求配置文件时二者会合二为一给你

spring cloud cloud 配置中心_配置文件_27

然后配置bootstrap

spring:
  cloud:
    config:
      label: master
      name: module01
      profile: dev
      uri: http://localhost:4041

management:
  endpoints:
    web:
      exposure:
        include: "refresh"

3.6.3 controller打注解

spring cloud cloud 配置中心_配置文件_28

3.6.4 测试能否获取配置文件


spring cloud cloud 配置中心_config_29

3.6.5 发送post请求,不重启8081更新配置文件

spring cloud cloud 配置中心_post请求_30

四、Bus

有了配置中心以后,可以提交post请求,不用重启服务,配置文件动态刷新,即时生效。但是微服务模块较多,每个要单独发送post请求还是很麻烦。

Bus作用:Bus消息总线可以实现,发一个post请求,让所有的微服务配置都是更新生效。底层是通过消息队列实现的,Bus支持RabbitMQ和kafaka。

(DOS窗口也可以发post请求)

4.0 启动消息队列

启动linux版必须用真实的ip,启动windows版的可以配置localhost

4.1 添加消息队列插件bus依赖

其他微服务都要加这两个依赖

spring cloud cloud 配置中心_config_31

4041也要加这两个依赖,它是一个总线,去监控其他微服务

spring cloud cloud 配置中心_微服务_32

4.2 配置文件

4041配置连接rabbitmq和动态刷新监控点


spring cloud cloud 配置中心_post请求_33

其他所有微服务都要配置连接rabbitmq


spring cloud cloud 配置中心_config_34

4.3 通过消息队列发消息

4.3.1 启动所有微服务会建立三个队列


spring cloud cloud 配置中心_配置文件_35

4.3.2 所有都更新

spring cloud cloud 配置中心_config_36

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-TiUxGACE-1605515375561)(C:/Users/CEO/AppData/Roaming/Typora/typora-user-images/image-20201116162616581.png)]

4.3.3 只刷新一个微服务

spring cloud cloud 配置中心_config_37


spring cloud cloud 配置中心_config_38