springcloud版本:Greenwich.SR2
一、server端
1.pom.xml引进依赖
<dependencies>
<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>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-bus</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-config-monitor</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-bus-amqp</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
2.配置文件为:
eureka:
client:
service-url:
defaultZone: http://localhost:8761/eureka/
spring:
application:
name: cloudconfig
cloud:
config:
server:
git:
uri: https://github.com/xxx/xxx.git
username: xxx
password: xxx
rabbitmq:
host: 127.0.0.1
port: 5672
username: guest
password: guest
management:
endpoints:
web:
exposure:
include: bus-refresh
3.启动的Application文件加入两个注解 @EnableDiscoveryClient @EnableConfigServer
二、client端
1.pom.xml引进依赖
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-config</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-bus-amqp</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
2.bootstrap.yml文件(优先级别高于application.yml)
server:
port: 8090
eureka:
client:
service-url:
defaultZone: http://localhost:8761/eureka/
spring:
cloud:
config:
discovery:
enabled: true
service-id: CLOUDCONFIG
profile: dzy
bus:
enabled: true
id: ${spring.application.name}:${spring.cloud.config.profile}:${random.value}
rabbitmq:
host: 127.0.0.1
port: 5672
username: guest
password: guest
management:
endpoints:
web:
exposure:
include: bus-refresh
3.启动的Application文件加入注解 @EnableDiscoveryClient
4.配置变量注入的文件需要使用注解 @RefreshScope
三 、github的webhooks上配置地址(此处我用了小工具natapp将内网映射到外网上):http://44vwwk.natappfree.cc/monitor?path=*
四、启动eureka服务注册中心,config server端,config client端。修改git上的配置文件变量,点击保存后config server跟config client就能自动刷新配置。
踩过的坑:
1.因为springcloud2.0后提供了monitor路由给github的webhooks,所以用/monitor访问即可,如果用/actuator/bus-refresh会报错需要改很多文件所以不推荐。当时用monitor要注意server端的pom.xml文件记得引入包。
2.spring-boot-starter-actuator包 在server端还是client端都需要引入,它是监控接口的。
3.webhooks为什么只会刷新server端不刷新client端?因为spring.cloud.bus.id需要我们跟webhooks配置规则一致,所以在client的配置文件中需要加入spring.cloud.bus.id: ${spring.application.name}:${spring.cloud.config.profile}:${random.value}
ps:这边的总线我用的是rabbitMQ,如果用kafuka的同学修改下依赖跟配置文件即可。
440



被折叠的 条评论
为什么被折叠?



