一、创建配置中心微服务4041
把所有配置文件都扔到git仓库里,修改配置文件,只需要发送一个post请求,不需要重启项目就能完成更新
git创建仓库
1.1 添加依赖
其实和eureka一样,config也是个服务端,其他微服务连到这个模块就相当于客户端。
注意:这个默认版本是2.2.1,其他版本如2.2.2会出现jar包冲突,nosuchmethod错误
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 启动类
二、测试7071配置文件
2.1 在7071配置文件随便加一个配置进行测试
在controller去取到这个配置
2.2 将7071配置文件改名后传到git仓库
application.yml---------->
命名规则,改配置文件名字按以下规则来取
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
2.3 通过配置中心拿到文件
找到GitHub的配置文件
三、其他微服务设置
7071就是4041的客户端,7071找4041,4041去找git拿配置文件
3.1 添加依赖
一定跟配置中心服务端的依赖分清楚,默认版本都是2.2.1
3.2 bootstrap.yml
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可以拿到配置文件中的内容
3.4 修改配置文件
点击编辑,之后提交即可
刷新4041配置文件会更新
但7071访问不会刷新,必须重启7071的服务才可以。
3.5 优点:配置动态刷新
3.5.1 添加监控插件的依赖
3.5.2 配置文件
3.5.3 controller加注解
3.5.4 发送post请求即可修改,不需要重启7071服务
显示[]时代表没有任何更改
修改过后4041已更新,但7071未更新
此时发送post请求进行更新,会显示哪里修改了
此时不需要重启7071的服务,配置文件已更新
练习:修改8081,同7071
3.6 修改配置8081
3.6.1 添加依赖
监控点和配置中心依赖都要加
3.6.2 配置文件
将两个配置文件照着7071一样改,在配置文件随便加一个值。文件拷出去,改名上传到git,二者会合为一个
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MPN8i3oh-1605515375556)(C:/Users/CEO/AppData/Roaming/Typora/typora-user-images/image-20201116134848813.png)]
请求配置文件时二者会合二为一给你
然后配置bootstrap
spring:
cloud:
config:
label: master
name: module01
profile: dev
uri: http://localhost:4041
management:
endpoints:
web:
exposure:
include: "refresh"
3.6.3 controller打注解
3.6.4 测试能否获取配置文件
3.6.5 发送post请求,不重启8081更新配置文件
四、Bus
有了配置中心以后,可以提交post请求,不用重启服务,配置文件动态刷新,即时生效。但是微服务模块较多,每个要单独发送post请求还是很麻烦。
Bus作用:Bus消息总线可以实现,发一个post请求,让所有的微服务配置都是更新生效。底层是通过消息队列实现的,Bus支持RabbitMQ和kafaka。
(DOS窗口也可以发post请求)
4.0 启动消息队列
启动linux版必须用真实的ip,启动windows版的可以配置localhost
4.1 添加消息队列插件bus依赖
其他微服务都要加这两个依赖
4041也要加这两个依赖,它是一个总线,去监控其他微服务
4.2 配置文件
4041配置连接rabbitmq和动态刷新监控点
其他所有微服务都要配置连接rabbitmq
4.3 通过消息队列发消息
4.3.1 启动所有微服务会建立三个队列
4.3.2 所有都更新
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-TiUxGACE-1605515375561)(C:/Users/CEO/AppData/Roaming/Typora/typora-user-images/image-20201116162616581.png)]
4.3.3 只刷新一个微服务