今天来讲解一下springcloud中的bus 消息总线的功能,
结合springcloud-config 配置中心,可以在系统的运行过程中,动态地更改一个微服务的状态
例如端口号,服务名称,或者其他的信息。
1、首先需要在github上面创建一个配置项目
2、
(1) 在配置中心的application.yml文件中,设置github上面配置文件的地址
# 服务名称
spring:
application:
name: config-server
cloud:
config:
server:
git:
uri: https://github.com/weizhenzhao/springcloud-configserver
username: *******
password: *******
# 超时时间
timeout: 5
# 分支
default-label: master
# 在配置文件中添加关于RabbitMQ的连接
rabbitmq:
host: 47.98.49.80
port: 5672
username: guest
password: guest
# searchPaths: springcloud_test
# strict-host-key-checking: false
# ignore-local-ssh-settings: true
# private-key: |
# 服务的端口号
server:
port: 9100
# 服务注册中心地址
eureka:
client:
service-url:
defaultZone: http://47.98.49.80:8181/eureka/
# 暴露全部的监控信息
management:
endpoints:
web:
exposure:
include: "*"
(2) 在配置中心的启动类上面添加
@EnableConfigServer 注解
(3) 在客户端的微服务中
加入maven依赖
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-config-client</artifactId>
</dependency>
将application.yml文件改为 bootstrap.yml文件
并设置配置中心的地址,
和相应配置文件的名称
默认读取文件名是 服务名称
# 指定注册中心地址
eureka:
client:
serviceUrl:
defaultZone: http://47.98.49.80:8181/eureka
# 服务的名称
spring:
application:
name: order-service
cloud:
config:
# discovery:
# serviceId: CONFIG-SERVER
# enabled: true
# profile: test
# 建议用label去区分环境,默认label是master分支
label: master
uri: http://121.40.215.64:9100
profile: dev
# 设置zipkin server 的地址
# zipkin:
# base-url: http://47.98.49.80:9411/
#
# sleuth:
# enabled: false
# sampler:
# percentage: 1.0
# 在配置文件中添加关于RabbitMQ的连接
rabbitmq:
host: 47.98.49.80
port: 5672
username: guest
password: guest
# 暴露全部的监控信息
management:
endpoints:
web:
exposure:
include: "*"
3、按照以下顺序启动微服务
启动eureka注册中心
启动springcloud-config 配置中心
启动feign 订单模块
启动eureka-client 商品模块
4、进行测试
由下图可以看到,第一次的配置中心中的env的值为"dev"
接下来将github上面配置文件中env的值改为env=dev12345
然后使用postman调用手动刷新的api
再次访问下单服务
可以看到,在服务没有重启的时候,env的值,动态地变成了dev12345