总结一下项目里使用的Spring Cloud 构建的统一配置中心:
1. 建立并启动配置中心项目:
1.1首先 建立起配置中心的项目 config-repo, 在项目里建立各个项目需要的配置文件;将该项目扔到git 上,地址为:http://10.16.19.139:18080/Rosy/config-repo
1.2. 为config-repo 项目建立配置文件:application.yml. 作为启动config-repo 时的配置文件;
1.3. 启动config-repo 项目,服务器地址:10.16.19.223:8888
2. 各个微服务 建立bootStrap.yml, (bootStrap.yml 的优先权要高于application.yml)
2.1 收单系统的bootStrap.yml
2.2 订单系统的bootStrap.yml
1. 在启动收单系统是,首先读取bootStrap.yml. 读到cloud.config.uri 时,会到URI 指定的位置读取文件,即到:10.16.19.223:8888 所在的服务器和端口所监听的项目,所以定位到了configserver, 接着读取configServer 的配置文件application.yml,在该yml 中,coud-config-server.git.uri 指出项目的git位置,searchLocation 指出 项目所在的服务器的启动位置。
定位到configserver之后:开始读取项目内的内容。读取的内容根据收单系统(client)中指出的spring.profiles.active ,即,
2. 在configserver 中配置文件的命名要有规则,需要和微服务(client)的 spring.name 及spring.profiles.active 形成对应,微服务才能在configserver 中找到自己需要的配置文件。对应规则如下:
配置文件的命名规则由以下的三个参数确定:{application}-{profile}-{label}.yml
- {application}映射到Config客户端的spring.application.name属性
- {profile}映射到Config客户端的spring.profiles.active属性,可以用来区分环境,比如dev,test,produce等等
- {label}映射到Git服务器的commit id,分支名称或者tag,默认值为master
例如 上述收单的 profiles:
profiles:
active: default,rabbit,redis,eureka . 表明收单系统激活default,rabbit,redis,eureka 4种文件,需要configserver 提供该4种文件。default 是指profile 可以不匹配;
收单系统的application.name = acquier.
则default =====> acquier.yml
eureka=====> acquier.eureka.yml
rabbit=====> acquier.rabbit.yml
redis=====> acquier.redis.yml
test =====> acquier.test .yml