应用springcloud-bus整合kafka进行配置变更的刷新,采用bus后,不在需要每个变更的服务节点自己手动刷新获取配置变更,通过bus刷新,然后发送给具体需要变更配置的服务节点;每个服务节点相当于消息的consumer(消费者),bus是消息的生产者;
server与client中的pom引入kafak:
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-config-server</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-kafka</artifactId>
</dependency>
</dependencies>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Edgware.SR4</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<build>
<finalName>spring-cloud-06-config-server</finalName>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<mainClass>com.cc.springcloud.Application</mainClass>
</configuration>
</plugin>
</plugins>
</build>
---------------------------------------------------------------------------------------------------
server/application:
spring:
application:
name: bus-config-server
cloud:
config:
server:
git:
uri: https://github.com/wanheyigu/config
stream:
kafka:
binder:
zk-nodes: 192.168.1.11:2182,192.168.1.11:2183,192.168.1.11:2184
brokers: 192.168.1.11:9092
server:
context-path: /
port: 4000
##应用配置中心需要禁用安全检查
##调用配置中心本地的地址进行配置的刷新
##http://localhost:4000/bus/refresh
management:
security:
enabled: false
---------------------------------------------------------------------------------------------------
client/bootstrap:
spring:
application:
name: evn ##此处名字与配置文件头相同
cloud:
config:
uri: http://localhost:4000 ##指定要从那个服务上读取配置,此处从config-server
profile: dev ##确定切换什么环境数据
label: master ##git分支,如不是master要指定具体分支
stream:
kafka:
binder:
zk-nodes: 192.168.1.11:2182,192.168.1.11:2183,192.168.1.11:2184
brokers: 192.168.1.11:9092
server:
context-path: /
port: 7001
---------------------------------------------------------------------------------------------------
启动测试:
修改本地仓库evn-dev.properties:
提交、并更新到GitHub;
刷新bus热更新配置(使用postman,必须post提交):