Config #
-
Config叫配置中心,它的作用:帮助整个微服务系统,统一的管理配置文件
-
目前,我们分离了很多的微服务,每个微服务都有对应的配置文件。开发环境下,我们每个微服务各自管理自己的配置文件,没有任何问题,但是在测试环境下,生产环境下等等。。。
-
解决方案:Spring Cloud提供了一种远程配置中心的方案,例如使用github.com,gitee.com
建立Config配置中心 #
远程配置中心 #
1、创建一个仓库 #
2、clone远程仓库 #
3、针对不同的微服务,创建不同的目录 #
4、将微服务的配置文件,放入到对应的目录中 #
命名格式为:服务ID-dev/pro/test.yml
5、上传配置文件到git #
本地配置中心 #
配置中心也是一个微服务、所以需要重新写一个模块
1、引入依赖 #
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-config-server</artifactId>
</dependency>
2、编写启动类,添加注解,激活配置中心 #
@EnableConfigServer
@SpringBootApplication
public class ConfigApplication {
public static void main(String[] args) {
SpringApplication.run(ConfigApplication.class,args);
}
}
3、编写配置中心微服务配置文件 #
- 配置文件的名称:bootstrap.yml(启动型配置文件)
- 当:bootstrap.yml,application.yml,application.properties同时存在时,bootstrap.yml先启动
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}'
4、启动配置中心微服务,访问配置文件 #
其余微服务集成配置中心,例如商品微服务 #
1、引入配置中心客户端依赖 #
<!-- 引入配置服务客户端的依赖启动器 -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-config-client</artifactId>
</dependency>
2、创建bootstrap.yml配置文件,删除之前的配置文件 #
spring:
cloud:
config:
#从git上的master分支获取内容
label: master
#开发环境(dev/test/pro)
profile: dev
#配置中心的uri
uri: http://localhost:11000
application:
#微服务的名称
name: star-product
3、启动微服务 #
说明读取配置文件成功
建立Nacos注册、配置中心 #
1、下载、解压、启动nacos服务器,并配置为注册中心 #
2、访问nacos配置中心界面 #
3、点击右边加号,添加配置 #
添加微服务的配置文件,例如clazz-system.yml #
4、微服务中,添加配置中心依赖 #
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
4、微服务中,删除之前的application.yml文件,创建bootstrap.yml文件,并编辑 #
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
5、启动微服务,读取配置文件 #
控制台出现配置信息,证明读取配置文件成功
Nacos动态刷新配置 #
1、在控制层添加注解@RefreshScope
#
@RestController
@RequestMapping("/student")
@RefreshScope
public class StudentController {}
2、在配置中心修改配置文件并发布 #
3、观察控制台,发现配置文件已经实时刷新 #