Config组件
作用:用来实现微服务系统中服务配置统一管理
组件:统一实现配置中心服务端、统一配置中心客户端client
在项目中,如果每一次集群都存在一个单独的配置文件,这样的话在遇到修改配置的时候,如果是多集群的情况下,工作量会十分的庞大,所以方便我们管理各个服务的配置。给我们提供了Config组件,为了实现高效的管理,我们一般将总配置文件放到远程仓库,然后配置ConfigServer 从远程仓库读取配置并缓存到本地,
ConfigServer的使用
1、首先我们选择一个远程git仓库,并且获取仓库地址(先简单创建一个空的仓库就好),在这个我选的是gitee,因为国内访问比较快
2、在创建的项目中引入config server 依赖
1 | <!-- config server--> |
配置application.yaml 远程仓库地址
1 | server: |
开启统一配置中心
@EnableConfigServer
Config Client 配置客户端组件
1、首先创建一个SpringBoot项目(在实际的应用中configclient就是一个个的服务)
2、将自身的配置文件交给远程git仓库来管理
3、引入config client依赖
1 | <dependency> |
4、编写配置文件 (这个是用来开启远程配置文件的)
1 | spring: |
注:这个配置文件是动态配置文件,并非是传统的配置文件,所以不能再叫application
,如果没有修改,会服务会报错,所以需要修改为bootstrap
手动配置刷新
配置完远程配置文件,如果修改了配置文件内容需要重启服务才能刷新配置文件的内容,这样的话每次修改完配置,都需要重启服务,这样过于繁琐。可以通过手动配置来实现刷新配置文件。
1、首先在所有Controller类中添加注解@RefreshScope
,这个注解是用来在不需要重启微服务情况下,将当前scope域中信息刷新为最新配置信息,没加的这个注解的类不会起作用。
2、当修改完远程git仓库配置文件之后,向每一个微服务发送一个post方式请求
注意:必须是POST请求 http://localhost:port/actuator/refresh
3、必须在微服务配置文件中暴露远端配置刷新端点
1 | management: |