资料
-
springcloud-config配置中心的使用 : https://blog.csdn.net/maoyeqiu/article/details/78543948
-
SpringCloud 配置中心Config和Eureka结合 : https://blog.csdn.net/Keith003/article/details/82382245
-
Config配置中心与客户端的使用与详细: https://www.cnblogs.com/hellxz/p/9306507.html
-
SpringCloudConfig配置中心: https://www.bilibili.com/video/BV1Li4y147fT?p=2
为什么要用springcloud配置中心
拆分粒度比较小的话,那么这个系统将会出现大量的服务,而我们在运行服务前,要给每个服务都进行必要的信息
的配置,服务才能正常运行,比如采用eureka注册中心的,需要给子服务添加eureka的配置,为了方便管理这些
子服务的配置文件,所以需要一个集中的,动态的管理工具。 所以springcloud为我们提供了ConfigServer配置中心。
几个概念
图解
========================仓库配置文件=====================
-
在码云上创建一个名为SpringCloudConfig的仓库
-
将微服务的配置文件拷贝一份
-
在建好的仓库中新建一个文件
-
将复制好的配置,粘贴进去,然后给文件起一个名字,名字的规则就是如下的配置
-
/ { 应用名 } / { 环境名 } [ / { 分支名 } ]
-
/ { 应用名 } - { 环境名 }.yml
-
/ { 应用名 } - { 环境名 }.properties
-
/ { 分支名 } / { 应用名 } - { 环境名 }.yml
-
/ { 分支名 } / { 应用名 } - { 环境名 }.properties
配置规则详解
-
/ { 应用名 } / { 环境名 } [ / { 分支名 } ]
-
/ { 应用名 } - { 环境名 }.yml
-
/ { 应用名 } - { 环境名 }.properties
-
/ { 分支名 } / { 应用名 } - { 环境名 }.yml
-
/ { 分支名 } / { 应用名 } - { 环境名 }.properties
注意:
第一个规则的分支名是可以省略的,默认是master分支 无论你的配置文件是properties,还是yml,只要是应用名+环境名能匹配到这个配置文件,那么就能取到 如果是想直接定位到没有写环境名的默认配置,那么就可以使用default去匹配没有环境名的配置文件 使用第一个规则会匹配到默认配置 如果直接使用应用名来匹配,会出现404错误,此时可以加上分支名匹配到默认配置文件 如果配置文件的命名很由多个-分隔,此时直接使用这个文件名去匹配的话,会出现直接将内容以源配置文件内容直接返回,内容前可能会有默认配置文件的内容(已测试)
========================config服务端========================
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-config-server</artifactId>
</dependency>
2、启用configserver
server:
port: 9999
spring:
application:
name: config-server #微服务应用名
cloud:
config:
server:
git:
uri: https://gitee.com/ming_5257/SpringCloudConfig.git #git仓库的地址
search-paths: SpringCloudConfig/eureka-dev.yml #配置仓库路径
username: *************
password: ********
========================config客户端========================
<!-- https://mvnrepository.com/artifact/org.springframework.cloud/spring-cloud-starter-config -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-config</artifactId>
<version>2.2.1.RELEASE</version>
</dependency>
2、添加bootstrap.yml配置文件
spring:
application:
name: search-service #服务的名称(仓库设置的配置文件的应用名相同,具体的看上面的配置规则详解)
cloud: #配置中心相关
config:
profile: dev #环境配置(开发,测试,生产)
label: master #分支配置
uri: http://********** #配置中心的网址
discovery:
enabled: true #从配置中心读取文件
==========================配置中心与注册中心的整合======================
-
改写配置中心的配置文件,主要是添加eureka的配置
server:
port: 9999
spring:
application:
name: config-server #微服务应用名
cloud:
config:
server:
git:
uri: https://gitee.com/ming_5257/SpringCloudConfig.git #git仓库的地址
search-paths: SpringCloudConfig/eureka-dev.yml #配置仓库路径
username: *************
password: ********
# eureka
eureka:
client:
service-url:
defaultZone: http://127.0.0.1:10086/eureka
registry-fetch-interval-seconds: 10
instance:
lease-renewal-interval-in-seconds: 5
lease-expiration-duration-in-seconds: 15
- ServerClient的配置
spring:
application:
name: search-service #服务的名称(仓库设置的配置文件的应用名相同,具体的看上面的配置规则详解)
cloud: #配置中心相关
config:
profile: dev #环境配置(开发,测试,生产)
label: master #分支配置
uri: http://********** #配置中心的网址
discovery:
enabled: true #从配置中心读取文件
service-id: config-server #配置中心在eureka的服务名称
#Eureka的配置
eureka:
client:
service-url:
defaultZone: http://127.0.0.1:10086/eureka
registry-fetch-interval-seconds: 5