关于配置中心,我们使用的是阿里巴巴开发的nacos旗下的config中心
为啥我们要用配置中心:
因为我们在实现项目打包,发布之后,想要去修改,在没设置这个配置中心的时候我们就需要去,重新写yml文件,重新打包,而在项目中加入例如配置中心我们就可以实现配置的热部署,不需要去重复上述动作,所有有些要经常进行修改的配置就放在配置中心里
配置中心咋用啊(从内存或者客户端获取了配置信息后,会将配置中心在本地内存中存储一份,一句话,成功获取后就算nacos崩了也能按设计好的配置)
首先,需要有nacos或者其他的配置中心导入到项目中,也就是添加依赖,并在yml文件中指定具体nacos的地址,除了配置服务发现服务的地址,也要将配置中心服务的地址加入,并且将yml配置文件命名为bootstrap.yml(与appliancation的区别是,此文件的优先级比较高,可以在服务启动的时候就去读取配置中心的数据),要注意配置中心的dataId名字是否与yml中的spring.appliaction.name是否相同,不同则会出现无法从配置中心获取信息的问题,其中的file-extension是指定文件的扩展名
配置中心分组规则:
命名空间:用于隔离生产环境与开发环境(就用于配置隔离环境的),默认会都存储到了public命名空间 注意要在yml文件中设置namespace指定要读取的环境
Group:举个栗子,在配置完环境或者服务时,当项目遇到大活动的时候服务中的配置可能不同,因此我们将其进行分组,当活动过去,返回原配置,活动是用活动组制定好的yml,只需要添加group在yml文件中,指定group的id即可!
咋设置共享配置:
共享配置,当同一个namespace的多个配置文件都有相同的配置,可以将这些裹脚布的配置进行抽取,之后存到nacos配置中心的一个或者很多个配置文件,那个服务需要调用即可
咋调共享配置啊:
在对用要获取共享配置的服务yml中写上: 记得如果共享配置单独放在了一个分组,会导致读取不到的问题,放在默认组即可
spring:
application:
name: sca-provider
cloud:
nacos:
config:
server-addr: localhost:8848
# 命名空间
namespace: 83ed55a5-1dd9-4b84-a5fe-a734e4a6ec6d
# 分组名
# group: DEFAULT_GROUP
# 配置中心文件扩展名
file-extension: yml
# 共享配置
shared-configs[0]:
data-id: app-public.yml
refresh: true #默认false,共享配置更新,引用此配置的地方是否要更新