config概述
配置中心提供了一个中心化的外部配置,默认使用git存储配置信息,这样就可以对配置信息进行版本管理,下边配置中心的搭建就是以git为基础进行的。配置中心是单独作为一个服务运行的。
spring cloud 允许运行时动态刷新配置,可以重新从配置中心获取新的配置信息。
bootstrap.yml引导配置文件,先于 application.yml 加载。
config实现
第一步:新建java项目config
当作一个文件夹,用来存放配置文件。
第二步:赋值sp02、03、04、11的配置文件至config,并重命名
spring的profile文件说明:
#item-service.yml - 主配置
#item-service-dev.yml - 开发 开发时启动,主+开发合并,同时启动。
#item-service-test.yml - 测试
#item-service-dev.prod - 生产
#item-service-xxx.yml -
第三步:config中的4个配置文件均添加配置并注释sp02、sp03、sp04、sp11的配置文件
#添加配置,当远程仓库的配置与本地仓库的配置冲突时,以本地仓库的配置为主
cloud:config:override-none: true
分别创建配置文件item-service-dev.yml:
# item-service-dev.yml
#给应用起个名,向注册中心注册时用这个名称注册
#注册信息:item-service ----->localhost:
spring:
application:
name: item-service
#设置禁止配置中心的配置将客户端配置覆盖掉
cloud:
config:
override-none: true
server:
port: 8001
eureka:
client:
service-url:
defaultZone: http://eureka1:2001/eureka,http://eureka2:2002/eureka
注释sp02、sp03、sp04、sp11的配置文件:
## application.yml
#
##给应用起个名,向注册中心注册时用这个名称注册
##注册信息:item-service ----->localhost:
#spring:
# application:
# name: item-service
#
#server:
# port: 8001
#
#eureka:
# client:
# service-url:
# defaultZone: http://eureka1:2001/eureka,http://eureka2:2002/eureka
第四步:创建本地仓库
选择本地仓库目录和文件
第五步:把本地仓库提交推送到gitee远程仓库
1.点击commit
2.勾选要提交的文件,填写提交信息,进行提交
点击commit,提交文件至本地仓库
3.gitee上创建仓库springcloud1
复制仓库地址
4.点击push,开始从本地仓库推送至远程仓库。
填写链接点击ok
push推送
查看是否推送成功
第六步:创建springboot项目sp12-config
第七步:添加config server、eureka依赖
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-config-server</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
第八步:配置pom文件
spring:
application:
name: config-server
cloud:
config:
server:
git:
uri: https://github.com/duchaosa/springcloud1
searchPaths: config
#username: your-username
#password: your-password
server:
port: 6001
eureka:
client:
service-url:
defaultZone: http://eureka1:2001/eureka, http://eureka2:2002/eureka
第九步:主程序添加注解@EnableConfigServer 和 @EnableDiscoveryClient
package cn.tedu.sp12;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.cloud.config.server.EnableConfigServer;
@EnableConfigServer
@EnableDiscoveryClient
@SpringBootApplication
public class Sp12ComfigApplication {
public static void main(String[] args) {
SpringApplication.run(Sp12ComfigApplication.class, args);
}
}
第十步:启动服务器sp12,访问测试
http://localhost:6001/item-service-dev.yml
http://localhost:6001/item-service/dev
第十一步:配置中心客户端
1.在sp02、sp03、sp04、sp11项目的pom
文件中分别添加config依赖
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-config</artifactId>
</dependency>
2.在sp02、sp03、sp04、sp11项目中分别创建bootstrap.yml文件
从eureka注册中心拉取config服务器,并获取客户端配置文件。
引导配置文件,先于 application.yml 加载。
item-service:
# bootstrap.yml
# 获取地址表,要从注册表获取配置中心得地址
eureka:
client:
service-url:
defaultZone: http://eureka1:2001/eureka,http://eureka2:2002/eureka
spring:
cloud:
config:
discovery:
enabled: true
service-id: config-server #配置中心的服务id
# item-service-dev.yml
name: item-service
profile: dev
user-service:
# bootstrap.yml
# 获取地址表,要从注册表获取配置中心得地址
eureka:
client:
service-url:
defaultZone: http://eureka1:2001/eureka,http://eureka2:2002/eureka
spring:
cloud:
config:
discovery:
enabled: true
service-id: config-server #配置中心的服务id
# user-service-dev.yml
name: user-service
profile: dev
order-service:
# bootstrap.yml
# 获取地址表,要从注册表获取配置中心得地址
eureka:
client:
service-url:
defaultZone: http://eureka1:2001/eureka,http://eureka2:2002/eureka
spring:
cloud:
config:
discovery:
enabled: true
service-id: config-server #配置中心的服务id
# order-service-dev.yml
name: order-service
profile: dev
zuul-service:
# bootstrap.yml
# 获取地址表,要从注册表获取配置中心得地址
eureka:
client:
service-url:
defaultZone: http://eureka1:2001/eureka,http://eureka2:2002/eureka
spring:
cloud:
config:
discovery:
enabled: true
service-id: config-server #配置中心的服务id
# zuul-dev.yml
name: zuul
profile: dev
3.启动服务器,查看服务器是否已成功拉起配置文件。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。