为什么需要统一配置中心:
- 不方便维护
- 配置内容安全与权限(配置文件隔离)
- 更新配置项目需重启
统一配置中心
创建config-service项目:
由于它本身是微服务服务,所有需要选择service
由于是config-service选中
项目创建完成后,需要在启动类型上面添加注解,首先添加eurekaclient注解
@EnableDiscoveryClient
然后修改配置文件
eureka:
client:
service-url:
defaultZone: http://localhost:8761/eureka/
spring:
application:
name: config
server:
port: 8066
再然后就需要添加config的注解
@EnableConfigServer
启动服务,报错。因为没有git仓库(因为config是需要远程gif->config-service->本地git)
创建原创git仓库
添加自己需要配置的文件
然后修改配置文件
eureka:
client:
service-url:
defaultZone: http://localhost:8761/eureka/
spring:
application:
name: config
cloud:
config:
server:
git:
uri: git地址
username: 用户名
password: 密码
server:
port: 8066
修改启动服务,然后访问localhost:8066/order-1.yml
Config支持我们使用的请求的参数规则为:
/{name}-{profiles}.yml
/{label}/{name}-{profiles}.yml
name 服务名
profiles 环境
label 分支
- / { 应用名 } / { 环境名 } [ / { 分支名 } ]
- / { 应用名 } - { 环境名 }.yml
- / { 应用名 } - { 环境名 }.properties
- / { 分支名 } / { 应用名 } - { 环境名 }.yml
- / { 分支名 } / { 应用名 } - { 环境名 }.properties
注意:
- 第一个规则的分支名是可以省略的,默认是master分支
- 无论你的配置文件是properties,还是yml,只要是应用名+环境名能匹配到这个配置文件,那么就能取到
- 如果是想直接定位到没有写环境名的默认配置,那么就可以使用default去匹配没有环境名的配置文件
- 使用第一个规则会匹配到默认配置
- 如果直接使用应用名来匹配,会出现404错误,此时可以加上分支名匹配到默认配置文件
- 如果配置文件的命名很由多个-分隔,此时直接使用这个文件名去匹配的话,会出现直接将内容以源配置文件内容直接返回,内容前可能会有默认配置文件的内容(已测试)
文件生产
想修改文件生成路径需要修改配置文件
eureka:
client:
service-url:
defaultZone: http://localhost:8761/eureka/
spring:
application:
name: config
cloud:
config:
server:
git:
uri: https://gitee.com/hcxb/config-repo.git
username: 15210629706
password: hx910324
basedir: /D:/Temp/config-repo-3404173915502690760/order.yml
server:
port: 8066
线上环境可以修改成线上路径。