目录
2.配置config模块,添加@EnableConfigServer,及配置项:
1.为什么要使用config
原来的配置存放:
1.java @confiregation注解,掺杂在项目中;
2.yml\properties中,每次需要更改
3.服务器的环境变量中,和机器有关;
4.启动命令中,需要重复输入;
5.存放在数据库中,可能会造成服务器压力;
config的解决方案:将配置文件存储在远端的git上通过自动拉取到本地实现配置的更新与覆盖;
好处:没有服务器或数据库压力;更新即时方便;支持批量服务器更新;可以根据后缀名,分生产、测试环境配置,自由切换;
2.操作准备
1.更换jce:
# 不限长度的JCE组件组件下载(注意下载对应JDK版本的组件) # https://www.oracle.com/technetwork/java/javase/downloads/jce-all-download-5170447.html
2.配置config模块,添加@EnableConfigServer,及配置项:
生产者:
消费者:
3.添加@RefreshScope注解
4.动态刷新:
动态刷新需要借助actuator(actuator是springcloud内部设置的统一的微服务模块监听模块,可以用来监听各个模块的使用情况等)通过访问http:localhost:{server.port}/actuator/refresh动态刷新,返回结果中包含被更新过的字段;(批量刷新需要继承bus)
# 配置actuator端点,2.0之后只打开了info和health,其他需要手动配置
management: #actuator
server:
port: 5001 # 必需要指明端口,不能不生效
endpoints:
web:
# base-path: / # 2.0以后 默认是 /actuator 前缀,可以在这里修改
exposure:
# include: "*" #打开全部请求端点
include: refresh,health,info #打开部分
详情:
老司机的应用级监控——spring actuator - 简书
SpringCloud学习(十)Spring Cloud Config客户端 /refresh 端点刷新配置_actuator/refresh_xiaoshijiu333的博客-CSDN博客
3.远端git仓库的命名规范:
label:所处的分支;
application:要和服务提供者的名字一样或者指定spring config name;
profile:环境名
后缀名可以不匹配,会自动转换;
// 获取配置文件的不同URL姿势,都是GET请求 // http://localhost:60000/{label}/{application}-{profile}.json // 以上后缀可以换成.yml, .properties,如果不指定{label}的话默认用master // // http://localhost:60000/{application}/{profile}/{label} // 如果不指定{label}的话默认用master
4.字段加密:
git文件中有敏感字段的需要使用加密,常用的方式是在config服务端中添加bootstrap文件配置
encrypt:#加密 key: 20051001
decrypt#解密,使用postman发送post请求到http:localhost:{server.port}/encrypt
传递的文本信息是需要加密的文字,即可返回加密后的文字;
5.加密文本存储:
需要添加{cipher}在加密文件前: