SpringCloud-bus 消息总线学习记录

什么是总线:在微服务架构的系统中,通常会使用轻量级的消息代理来构建一个公用的消息主题,并让该系统中的所有微服务实例都连接上来。由于该主题中产生的消息会被所有实例监听和消费,所以称他为消息总线。

基本原理:ConfigClient实例都监听MQ中同一个topic(默认是SpringCloudBus)。当一个服务刷新数据的时候,他会把这个消息放入topic,这样其他监听同一个topic的服务就能够得到通知,然后去更新自身配置。

 

SpringCloud配置中心+消息总线服务端配置

1.引入依赖

  <dependency> <!--消息总线RabbitMQ的支持-->
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-bus-amqp</artifactId>
        </dependency>
        <!--    配置中心    -->
        <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>

2.application.yml配置

server:
  port: 3344
spring:
  application:
    name: cloud-config-center
  cloud:
    config: #配置中心配置
      server:
        git:
          uri: https://github.com/lxy187*****/config-center.git  #github仓库地址
          search-paths:
            - config-center
      label: master    #仓库分支
  rabbitmq:      #配置中心配置 bus-rabbitmq
    host: 192.168.1.8
    port: 5672
    username: admin
    password: admin
management:     #向外暴露监控端口
  endpoints:
    web:
      exposure:
        include: "bus-refresh"
eureka:
  instance:
    hostname: cloud-config-center
    prefer-ip-address: true     #是否显示微服务IP地址
  client:
    register-with-eureka: true
    fetch-registry: true
    service-url:
      defaultZone: http://eureka7001:7001/eureka,http://eureka7002:7002/eureka #Eureka集群配置

配置中心+消息总线 客户端配置

1.引入依赖

<dependency>    <!--消息总线RabbitMQ的支持 -->
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-bus-amqp</artifactId>
        </dependency>
        <dependency>    <!--配置中心客户端 依赖 -->
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-config</artifactId>
        </dependency>
        <dependency>

2.bootstrap.yml配置

server:
  port:3355

spring:
  application:
    name: cloud-config-client
  cloud:
    config:  #confi配置
      label: master #分支
      name: config #配置文件名称
      profile: dev #文件后缀
      uri: http://localhost:3344  #配置中心 服务端地址
  rabbitmq:
    host: 192.168.1.8
    port: 5672
    username: admin
    password: admin
#暴露监控接口
management:
  endpoints:
    web:
      exposure:
        include: "*"

eureka:
  instance:
    instance-id: cloud-config-client
    ip-address: true
  client:
    register-with-eureka: true
    fetch-registry: true
    service-url:
      defaultZone: http://eureka7001:7001/eureka,http://eureka7002:7002/eureka #Eureka集群配置

在gihub上修改 config-dev.yml配置文件后,使用post请求访问 配置中心服务端:

http://localhost:3344/actuator/re-fresh 进行广播刷新,使所有客户端更新配置

也可访问 http://localhost:3344/actuator/re-fresh/{destination} 刷新指定的微服务配置

destination:微服务名称(spring.application.name)+端口号  ,例如 http://localhost:3344/actuator/re-fresh/cloud-config-center:3355 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值