1.配置中心组件
l Apollo**------>很多使用apollo**
Apollo是由携程开源的分布式配置中心。特点有很多,比如:配置更
新之后可以实时生效,支持灰度发布功能,并且能对所有的配置进行
版本管理、操作审计等功能,提供开放平台API。并且资料 也写的很详
细。
l Disconf
Disconf是由百度开源的分布式配置中心。它是基于Zookeeper来实现
配置变更后实时通知和生效的。
l SpringCloud Config
这是Spring Cloud中带的配置中心组件。它和Spring是无缝集成,使
用起来非常方便,并且它的配置存储支持Git。不过它没有可视化的操
作界面,配置的生效也不是实时的,需要重启或去刷新。
l Nacos
这是SpingCloud alibaba技术栈中的一个组件,前面我们已经使用它
做过服务注册中心。其实它也集成了服务配置的功能,我们可以直接
使用它作为服务配置中心。
2.在nacos配置中心创建微服务配置文件
3.微服务使用配置中心中指定配置文件
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-
nacos-config</artifactId>
</dependency>
4.创建一个bootstrap.properties配置文件
5. 在controller验证读取到配置中的内容
6.bootstrap和application的区别
bootstrap和application都是SpringBoot项目中的配置文件,他们的区
别主要有以下的几个方面
(1)加载顺序区别
bootstrap配置文件是比application配置文件优先加载的,因为
bootstrap是由spring父上下文加载,而application是由子上下文加载(2)优先级区别
bootstrap加载的配置信息是不能被application的相同配置覆盖的,如
果两个配置文件同时存在,也是以bootstrap为主
(3)应用场景区别
bootstrap常见应用场景
1.配置一些固定的,不能被覆盖的属性.用于一些系统级别的参数配置
本地的配置文件是默认不能覆盖远程的配置的
2.一些需要加密/解密的场景
3.当你使用了nacos配置中心时,这时需要在boostrap配置文件中添加
连接到配置中心的配置属性来加载外部配置中心的配置信息,专业翻译
当配置中心中的内容发生改变时,微服务应该自动收到改变的内容。
7.nacos实时刷新
在controller类上加上@RefreshScope注解
7.2微服务集群共享一个配置文件
应该把每个微服务的配置放入对应配置中心文件中。
student.name=aaa
#端口号:8080~8089 []
server.port=8081
#数据源
spring.datasource.url=jdbc:mysql://localhost:3306/spri
ngcloud-product?serverTimezone=Asia/Shanghai
spring.datasource.password=chuxin0920
spring.datasource.username=root
spring.datasource.driver-class-
name=com.mysql.cj.jdbc.Driver
#打印sql日志
mybatis-plus.configuration.log-
impl=org.apache.ibatis.logging.stdout.StdOutImpl
##注册中心的地址
#spring.cloud.nacos.discovery.server-
spring.cloud.nacos.discovery.server-
addr=localhost:8848
##起名字 单词之间使用-划线
spring.application.name=qy163-product
#eureka.client.service-
url.defaultZone=http://localhost:7001/eureka/
#zipkin服务端的地址
spring.zipkin.base-url=http://localhost:9411/
7.3多个微服务共享一些配置内容
在微服务bootstrap.properties编写配置文件
#引用公共配置内容 #扩展文件的id spring.cloud.nacos.config.extension-configs[0].data-id=nacos-data.properties #扩展文件是否实时刷新 spring.cloud.nacos.config.extension-configs[0].refresh=true spring.cloud.nacos.config.extension-configs[0].group=DEFAULT_GROUP