【Config】02-Config、Bus与SpringCloud

Config、Bus与SpringCloud

还是没有写完。。。。。我好菜

简介

Spring Cloud Bus 配合 Spring Cloud Config 使用可以实现配置的动态刷新

作用

Spring Cloud Bus能管理和传播分布式系统间的消息,就像一个分布式执行器,可用于广播状态更改、时间推送等,也可以当作微服务间的通信通道。

什么是总线

在微服务架构的系统中,通常会使用轻量级的消息代理来构建一个共用的消息主题,并让系统中所有的微服务实例都连接上来。由于该主题中产生的消息会被所有实例监听和消费,所以称它为消息总线。在总线上的各个势力,都可以方便的广播一些需要让其他连接在该主题上的示例都知道的消息

基本原理

config-client实例都监听MQ中同一个topic(默认是Spring Cloud Bus)。当一个服务刷新数据时,他会把这个信息放入到Topic中,这样其他监听Topic的服务就能得到通知,然后去更新自身的配置。

安装前置软件RabbitMQ

推荐使用Docker安装

应用

(给cloud-config服务添加Bus)

根据cloud-config-client-7061,新建程序cloud-config-client-7062

cloud-config-7051 , cloud-config-client-7061cloud-config-client-7062添加消息总线

cloud-config-7051

  1. pom.xml

    1
    2
    3
    4
    <dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-bus-amqp</artifactId>
    </dependency>
  2. application.yml

    1
    2
    3
    4
    5
    6
    spring:
    rabbitmq:
    host: api.rabbitmq
    port: 5672
    username: guest
    password: guest
  3. 重启服务

  4. 打开RabbitMQ管理页面http://api.rabbitmq:15672,打开交换机(Exchange)

    此时创建了交换机springCloudBus,为广播模式(Topic)

    img-01

cloud-config-client-7061/7062

  1. pom.xml

    1
    2
    3
    4
    <dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-bus-amqp</artifactId>
    </dependency>
  2. bootstrap.yml

    1
    2
    3
    4
    5
    6
    spring:
    rabbitmq:
    host: api.rabbitmq
    port: 5672
    username: guest
    password: guest
  3. 重启服务

  4. 打开RabbitMQ管理页面http://api.rabbitmq:15672,点击springCloudBus交换机的详细信息

    该交换机已绑定3个队列

    img-02

动态更新配置信息

  1. 查看此时配置文件数据localhost:7051/master/springcloud-config-gitee-dev.yml

    img-03

  2. 获取此时config-client-7061, config-client-7062的服务配置

-------------本文结束感谢您的阅读-------------