一.直接通过idea的向导创建一个项目,选择的项如下
项目创建后pom.xml的dependency如下:
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-config-server</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-eureka</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-bus-amqp</artifactId>
</dependency>
</dependencies>
application.yml #制定环境变量
application-dev.yml #开发环境的配置
application-pro.yml #线上环境的配置
application-dev.yml的配置信息:
spring:
application:
name: config-server
cloud:
config:
server:
git:
uri: https://code.aliyun.com/hyb-sys/cloud-config.git
searchPaths: elastic-api,routing-zuul
username: *****
password: ******
rabbitmq:
host: ******
port: 5672
username: *****
password: ******
virtual-host: /cloud_bus
management:
security:
enabled: false
server:
port: 8999
eureka:
instance:
prefer-ip-address: true
instance-id: ${spring.cloud.client.ipAddress}:${server.port}
lease-renewal-interval-in-seconds: 5 # 心跳时间,即服务续约间隔时间(缺省为30s)
lease-expiration-duration-in-seconds: 10 # 发呆时间,即服务续约到期时间(缺省为90s。
client:
serviceUrl:
defaultZone: http://dev:dev123@127.0.0.1:8800/eureka/
注意 :searchPaths指的是git仓库下需要加载的配置文件的文件夹,可以是多个。但是这些文件夹名不是项目名。具体的项目对应的配置文件,是放在这个写文件夹下面的yml文件,配置文件的明白严格按照 {spring.application.name}-{env}.yml 这样的格式,如:
application.yml可以制定加载的配置文件,如下:
spring:
profiles:
active: dev
三。客户端的配置
1.在客户端资源文件夹创建 bootstrap.properties,删除其他配置文件,这个文件会优先其他yml文件加载,如果如下:
spring.cloud.config.name=queue-product
spring.cloud.config.label=master
spring.cloud.config.profile=pro
# 开启Config服务发现支持
spring.cloud.config.discovery.enabled=true
# 此处需要设置成Config Server在Eureka上注册的服务名
spring.cloud.config.discovery.service-id=config-server
eureka.client.service-url.defaultZone=http://dev:dev123@127.0.0.1:8800/eureka/
注意:service-id 是 前面两步中创建的配置服务器项目的 spring.application.name 。
2.将配置文件按照命名规范保存在git中。内容如下:
server:
port: 8085
spring:
rabbitmq:
host: *********
port: 5672
username: ****
password: *****
virtual-host: /hyb_test
eureka:
instance:
lease-renewal-interval-in-seconds: 15 # 心跳时间,即服务续约间隔时间(缺省为30s)
lease-expiration-duration-in-seconds: 30 # 发呆时间,即服务续约到期时间(缺省为90s。
client:
serviceUrl:
defaultZone: http://weizhigang:laowei123@10.27.242.136:5500/eureka/
四。刷新服务器
通过post请求访问配置文件的服务器,更新其他服务器的配置文件,如下
curl -X POST http://localhost:5999/bus/refresh?destination=elastic-api:5001
curl -X POST http://localhost:5999/bus/refresh?destination=routing-zuul:5100
也可以刷新所有微服务的配置文件,如下
curl -X POST http://localhost:5999/bus/refresh
架构图如下,图片转自网络: