SpringCloud之Bus的基础使用

SpringCloud Bus概述

​ SpringCloud Bus俗称消息总线,是用来把轻量级消息系统与分布式系统的节点连接起来的框架;它整合了java的事件处理机制和消息中间件的功能;可用于广播状态更改(如,配置更改)或其它管理指令,事件推送,也可以当作微服务间的通信通道;目前支持RabbitMQ和Kafka

​ 可以借助消息总线来帮你扩散消息(指令),如SpringCloud Bus配合SpringCloud Config使用可以实现配置的大量动态刷新

相关面试题

1>进程间怎么通讯?
MQ HTTP TCP/IP协议。
2>线程间怎么通讯?
生产者消费者模型(等待唤醒)。

config服务端引入Bus:

第一步:pom文件

<!--bus和rabbitmq的集成依赖-->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-bus-amqp</artifactId>
        </dependency>

<!--actuator的依赖-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>

关于actuator

​ actuator是spring提供的一个监控模块,用于帮助我们监控管理微服务应用;其暴露了很多端点(url),通过这些不同的端点,我们可以全方面监控微服务应用,比如健康检查、审计、指标收集、HTTP跟踪等。在此,我们使用actuator主要用于监控和刷新配置文件

第二步:配置文件:

#配置文件中心的服务名称
spring.application.name=config-server
#配置文件中心的端口 -- 一般都是8888 8889
server.port=8888

#--------------------和git的关联配置-----------------------------------------------
#gitee上的配置文件远程仓库的url地址
spring.cloud.config.server.git.uri=***
#gitee上的配置文件远程仓库中存放配置文件的目录路径
spring.cloud.config.server.git.search-paths=***
#登录gitee的用户名
spring.cloud.config.server.git.username=***
#登录gitee的密码
spring.cloud.config.server.git.password=***
#将gitee上的配置文件远程仓库中的配置文件缓存到本地的位置
spring.cloud.config.server.git.basedir=***

#----------------------rabbitmq的配置--------------------
#Bus组件默认配合RabbitMQ来实现,所以再这里需要借助RabbitMQ来实现
#RabbitMQ的服务器ip(linux的ip)
spring.rabbitmq.host=***
#RabbitMQ的服务器端口
spring.rabbitmq.port=***
#用户名
spring.rabbitmq.username=***
#密码
spring.rabbitmq.password=***
#虚拟主机
spring.rabbitmq.virtual-host=***

#暴露actuator的所有监控端点(url)
management.endpoints.web.exposure.include=*

config客户端引入Bus

第一步:pom文件

        <!--bus和rabbitmq的集成依赖-->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-bus-amqp</artifactId>
        </dependency>

        <!--actuator的依赖-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>

第二步:配置文件

#config客户端的服务名称
spring.application.name=config-client
#config客户端的端口
server.port=8080

#---config客户端从配置中心(config服务端)拉取配置文件的配置---

#配置中心(config服务端)的url地址
spring.cloud.config.uri=http://localhost:8888

#配置文件的读取规则是:
#/{label}/{name}-{profile}.properties 或 /{label}/{name}-{profile}.yml
#label是配置文件位于的分支名称,例如master主分支
#name是配置文件名称的前缀,例如config-dev.properties
#profile是配置文件名称的环境,例如config-dev.properties
spring.cloud.config.label=master
spring.cloud.config.name=config
spring.cloud.config.profile=dev

#----------------------rabbitmq的配置--------------------
#RabbitMQ的服务器ip(linux的ip)
spring.rabbitmq.host=***
#RabbitMQ的服务器端口
spring.rabbitmq.port=***
#用户名
spring.rabbitmq.username=***
#密码
spring.rabbitmq.password=***
#虚拟主机
spring.rabbitmq.virtual-host=***

#暴露actuator的所有监控端点(url)
management.endpoints.web.exposure.include=*

核心步骤:

#以post方式向config服务端config-server发送刷新请求:
http://localhost:8888/actuator/bus-refresh

发出刷新请求后,响应状态码为204的话,代表刷新成功,之后再访问时候,就解决了config的脏读效果

补充:局部刷新

#公式:
http://配置中心ip:配置中心端口/actuator/bus-refresh/{destination}
#destination指定的是具体的config客户端的服务名称:端口。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值