由于spring cloud微服务很多, 所以每个配置文件都分散在各个微服务中, 不利于管理, 所以spring cloud为我们提供了配置中心, 将配置文件交由配置中心进行统一管理.
配置中心也是一个微服务, 需要向Eureka中心进行注册.
-
新建config-server模块, 勾选config和Eureka client的starter
image.png -
在启动类applcation文件上添加注解
@EnableDiscoveryClient
能被Eureka发现
@EnableConfigServer
开启配置server
@SpringBootApplication
@EnableDiscoveryClient //能被Eureka发现
@EnableConfigServer //开启配置server
public class ConfigServerApplication {
public static void main(String[] args) {
SpringApplication.run(ConfigServerApplication.class, args);
}
}
-
建立远程仓库,用来存放各个微服务的配置文件
https://github.com/sUnShinEo0/spring-cloud-configure.git -
配置application.yml
#端口号
server:
port: 11000
spring:
#应用名称
application:
name: configure-server
#配置文件指向的远程仓库地址
cloud:
config:
server:
git:
uri: https://github.com/sUnShinEo0/spring-cloud-configure.git
#向服务中心注册自己
eureka:
client:
service-url:
defaultZone: http://localhost:10086/eureka
logging:
level:
com: debug
- 将微服务的配置文件复制到远程仓库中, 文字命名为{application-name}-{profile}.yml
- 改造服务的配置文件, 删除原先配置文件application.yml, 新建bootstrap.yml启动配置文件, 用于连接配置中心
bootstrap.xml
spring:
cloud:
config:
#服务的名字, 这几个参数主要用于在远程仓库中定位文件, {application-name}-{profile}.yml
# name要和仓库中前半截相同
name: consumer-service
profile: dev
# label指定远程仓库的分支
label: master
# 设置指定的配置中心
discovery:
enabled: true
service-id: configure-server
#向服务中心注册自己
eureka:
client:
service-url:
defaultZone: http://localhost:10086/eureka
ps: bootstrap.yml和application.yml的区别在于bootstrap用于启动配置, 优先加载, 改动较小, 而application.yml随着我们项目的变化会进行持续的修改
- 重新启动服务, 启动的次序依次为: Eureka-server-> Config-server->功能微服务
网友评论