spring cloud config 配置管理中心
2021-01-29 17:15
标签:依赖包 eureka lang vma 推荐 res 指令 它的 启动 yls 注意文件的名称不是乱起的,例如 config-single-client-dev.yml 和 config-single-client-prod.yml 这条指令可以在运行配置管理中心的机器上运行。 注意: spring cloud config 配置管理中心 标签:依赖包 eureka lang vma 推荐 res 指令 它的 启动 原文地址:https://www.cnblogs.com/yloved/p/12832076.html
2020/5/5创建配置管理中心
1.添加依赖包
2.在启动类上添加注解
@EnableConfigServer
3.创建配置文件
application.yml
spring:
application:
name: itoken-config
cloud: #分布式配置中心,将配置文件保存到git远程仓库上,访问方式:http://ip:port/{application}/{profile}[/{label}]
config:
label: master #git分支
server:
git:
uri: https://github.com/1612480331-itoken/itoken-config.git #仓库地址,需要在远程仓库自行创建
search-paths: respo #仓库中放配置的目录
username: * #远程仓库用户名
password: * #远程仓库密码
server:
port: 8888
4.在仓库的respo目录下添加配置文件,一般在本地创建好再上传到仓库
这两个是同一个项目的不同版本,项目名称为 config-single-client, 一个对应开发版,一个对应正式版。
config-eureka-client-dev.yml 和 config-eureka-client-prod.yml 则是另外一个项目的,
项目的名称就是 config-eureka-client5.启动服务,通过浏览器直接访问配置文件,例如:访问
http://localhost:8888/itoken-eureka/dev/master
Spring Cloud Config 有它的一套访问规则,我们通过这套规则在浏览器上直接访问就可以。
/{application}/{profile}[/{label}]
/{application}-{profile}.yml
/{label}/{application}-{profile}.yml
/{application}-{profile}.properties
/{label}/{application}-{profile}.properties
{application} 就是应用名称,对应到配置文件上来,就是配置文件的名称部分,例如我上面创建的配置文件。
{profile} 就是配置文件的版本,我们的项目有开发版本、测试环境版本、生产环境版本,对应到配置文件上来就是以 application-{profile}.yml 加以区分,例如application-dev.yml、application-sit.yml、application-prod.yml。
{label} 表示 git 分支,默认是 master 分支,如果项目是以分支做区分也是可以的,那就可以通过不同的 label 来控制访问不同的配置文件了。
上面的 5 条规则中,我们只看前三条,因为我这里的配置文件都是 yml 格式的。根据这三条规则,我们可以通过以下地址查看配置文件内容:
http://localhost:3301/config-single-client/dev/master
http://localhost:3301/config-single-client/prod
http://localhost:3301/config-single-client-dev.yml
http://localhost:3301/config-single-client-prod.yml
http://localhost:3301/master/config-single-client-prod.yml
通过访问以上地址,如果可以正常返回数据,则说明配置中心服务端一切正常。
微服务使用配置管理中心
1.添加依赖包
2.添加application.yml配置文件
spring:
cloud:
config: #云配置
uri: http://localhost:8888 #spring cloud config云配置服务ip+端口
name: itoken-eureka # 服务名称
label: master #git仓库版本
profile: prod #配置文件类型,dev,test,prod
# 下面一部分是通过注册中心连接配置中心,与上面的url直连是一样的效果,推荐使用下面这个
#discovery:
#service-id: itoken-config #配置中心的服务名称
#enabled: true
3.启动项目,在日志中查看是否配置成功
在线更新配置信息(只有使用了 bus-amqp才行,本文未使用,可以不看)
如果要更新所有客户端的配置,使用如下指令
curl -X POST http://local:8888/bus/refresh
如果要远程执行,将localhost改为相关的ip地址如果只更新某一个应用的配置,执行如下指令
#orderweb表示要更新的应用名称
curl -X POST http://local:8888/bus/refresh?destination=orderweb:**
并不是所有配置信息都能在线更新生效,例如有关连接数据源的配置,在线更新不能修改,因为应用启动时已经建立了数据库的连接如果配置是通过程序来动态读取的,必须在程序的开头加上 @RefreshScope才能生效
@RestController
@RefreshScope
public class Test1{
@Value("${port}") String port;
}