Spring Cloud Config
基本使用
服务端
1 2 3 4 5 6 7 8 9
| <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>
|
1 2 3 4 5 6 7
| spring.application.name=config-center
spring.cloud.config.server.git.uri=https://github.com/midkuro/config-center.git
spring.cloud.config.label=master
eureka.client.service-url.defaultZone=http://euk1.com:7002/eureka/
|
1 2 3 4 5 6 7 8
| @EnableConfigServer @SpringBootApplication public class AConfigApplication {
public static void main(String[] args) { SpringApplication.run(AConfigApplication.class, args); } }
|
往git远程仓库上传一个文件config-client-dev.properties
然后可以通过发送请求查看内容
1
| http://localhost:70/master/config-client-dev.properties
|
1 2 3 4 5 6 7 8 9 10 11 12
| 配置文件的匹配规则: 获取配置规则:根据前缀匹配 /{name}-{profiles}.properties /{name}-{profiles}.yml /{name}-{profiles}.json /{label}/{name}-{profiles}.yml
name 服务名称 profile 环境名称,开发、测试、生产:dev qa prd lable 仓库分支、默认master分支
匹配原则:从前缀开始。
|
客户端
1 2 3 4
| <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-config-client</artifactId> </dependency>
|
【application.properties】必须改名成【bootstrap.properties】,客户端启动时就可以去拉取配置,
1 2 3 4 5 6 7 8 9 10 11
| spring.application.name=config-client
spring.cloud.config.uri=http://localhost:9999/
spring.cloud.config.profile=dev
spring.cloud.config.label=master
|
配置刷新
手动刷新
1 2 3 4 5
| <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency>
|
1 2 3
| management.endpoints.jmx.exposure.include=* management.endpoints.web.exposure.include=* management.endpoint.health.show-details=always
|
添加actuator
依赖并暴露refresh
接口,然后在@Value
需要刷新的类中增加@RefreshScope
注解,最后config-client
客户端发送POST请求
1
| http://localhost:91/actuator/refresh
|
这种刷新方式只能刷新一个服务。
自动刷新
1 2 3 4
| <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-bus-amqp</artifactId> </dependency>
|
引入依赖,安装RabbitMQ,然后在需要自动刷新的项目(config-client
)中添加MQ的相关配置。
1 2 3 4
| spring.rabbitmq.host=localhost spring.rabbitmq.port=5672 spring.rabbitmq.username=guest spring.rabbitmq.password=guest
|
然后修改git上的配置文件后,触发请求通知服务刷新配置,本地服务刷新的时候会通知给其他服务也去刷新服务。
1
| http://localhost:91/actuator/bus-refresh
|