Config叫配置中心,它的作用:帮助整个微服务系统,统一的管理配置文件
目前,我们分离了很多的微服务,每个微服务都有对应的配置文件。开发环境下,我们每个微服务各自管理自己的配置文件,没有任何问题,但是在测试环境下,生产环境下等等。。。
解决方案:Spring Cloud提供了一种远程配置中心的方案,例如使用github.com,gitee.com
命名格式为:服务ID-dev/pro/test.yml
配置中心也是一个微服务、所以需要重新写一个模块
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-config-server</artifactId>
</dependency>
@EnableConfigServer
@SpringBootApplication
public class ConfigApplication {
public static void main(String[] args) {
SpringApplication.run(ConfigApplication.class,args);
}
}
server:
port: 11000
spring:
application:
name: star-config
cloud:
config:
server:
git:
#git地址
uri: https://gitee.com/yh-gh/star-config.git
#登录GIT用户名,如果访问的git开源,不需要账户、密码
username:
#登录GIT密码
password:
#启动配置中心时,要求强制获取配置信息
force-pull: true
#搜索配置文件的路由,{application}为占位符,搜索全部路径
search-paths: '{application}'
<!-- 引入配置服务客户端的依赖启动器 -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-config-client</artifactId>
</dependency>
spring:
cloud:
config:
#从git上的master分支获取内容
label: master
#开发环境(dev/test/pro)
profile: dev
#配置中心的uri
uri: http://localhost:11000
application:
#微服务的名称
name: star-product
说明读取配置文件成功
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
spring:
application:
# 配置应用的名称,用于获取配置
name: clazz-system
cloud:
nacos:
discovery:
server-addr: http://localhost:8848
config:
# 配置nacos配置中心服务的地址
server-addr: http://localhost:8848
# 配置分组
group: clazz-system
# 配置文件后缀,用于拼接配置配置文件名称
file-extension: yml
# 配置自动刷新
refresh: true
# 配置文件的前缀
prefix: clazz-system
控制台出现配置信息,证明读取配置文件成功
@RestController
@RequestMapping("/student")
@RefreshScope
public class StudentController {}