SpringCloud-Config的使用
Config 的使用
Config Server
创建 git 项目,创建一级目录 config(可以不创建,这里是为了区分路径)。增加配置文件
order-service-dev.yml
order-service-test.yml
order-service.yml
order-service 为使用 config 客户端的项目名称,后缀为 profile-环境
1
2
3
4
5
6
7
8
9
10
11
12
13
14order-service.yml
dev: prod
orderId: bbbb
order-service-dev.yml
env: dev
orderId: aaaa
order-service-test.yml
env: test
orderId: ccc引入依赖
1
2
3
4<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-config-server</artifactId>
</dependency>修改配置文件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22spring:
application:
name: spring-cloud-config
cloud:
config:
enabled: true
server:
git:
uri: https://gitee.com/zerofuns/spring-cloud-config-server.git
default-label: master
search-paths: config
password: ******
username: zerofuns
server:
port: 8199
eureka:
client:
service-url:
defaultZone : http://localhost:8188/eureka注:这里整合了 eureka
启动 Config,在 application 增加@EnableConfigServer
config client
增加 bootstrap.yml 文件。因为 bootstrap.yml 的加载顺序是第一个的,因为加载属性之前必须先加载 spring-config,否者会直接报错。
1
2
3
4
5
6
7
8
9
10
11
12
13
14spring:
cloud:
config:
discovery:
enabled: true
service-id: spring-cloud-config
profiles:
active: test
eureka:
client:
service-url:
defaultZone: http://localhost:8188/eureka修改 application.yml
1
2
3
4
5spring:
application:
name: order-service
server:
port: 8166这里的项目名字必须和 git 里面的文件名字前缀保持一致
使用
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
public class OrderServiceProvider implements OrderService {
private String orderId;
public String info() {
return "order info";
}
public String getOrderId() {
return orderId;
}
}访问接口 http://localhost:8166/orderId
1
ccc
动态刷新配置
增加依赖
1
2
3
4<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>添加配置
1
2
3
4
5
6
7
8management:
endpoint:
shutdown:
enabled: false
endpoints:
web:
exposure:
include: '*'修改配置之后,手动调用 http://localhost:8166/actuator/refresh (post 请求),配置自动刷新
上述这种情况,对于每一个 config 的客户端,都需要手动调用上述 refresh 接口,操作非常繁杂。可以通过 spring cloud bus 消息总线,通过消息队列订阅消息刷新配置。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 zeofuns!