6.SpringCloud学习(六)——Spring Cloud Bus 消息总线

本文介绍了Spring Cloud Bus的用途,它通过轻量级消息代理连接分布式系统的节点,用于广播状态变化,如配置更新。文章详细阐述了在Java环境下,使用Spring Boot 2.2.0和Spring Cloud Hoxton.RELEASE,配合Kafka作为消息队列,搭建配置仓库、注册中心、配置服务器和配置客户端的步骤,并展示了如何实现配置的动态刷新。
摘要由CSDN通过智能技术生成

1.简介

1.1 概述

Spring Cloud Bus links nodes of a distributed system with a lightweight message broker. This can then be used to broadcast state changes (e.g. configuration changes) or other management instructions. AMQP and Kafka broker implementations are included with the project. Alternatively, any Spring Cloud Stream binder found on the classpath will work out of the box as a transport.

Spring Cloud Bus将轻量级消息代理程序链接到分布式系统的节点。然后可以将其用于广播状态更改(例如配置更改)或其他管理指令。该项目包括AMQP和Kafka broker 实现。另外,在类路径上找到的任何Spring Cloud Stream绑定程序都可以作为传输工具使用。

1.2 特点

spring cloud bus 使用消息队列来作为分布式环境中信息沟通的工具,通常用于广播状态变更或配置更改等。

2.演示环境

  1. JDK 1.8.0_201
  2. Spring Boot 2.2.0.RELEASE、Spring Cloud Hoxton.RELEASE
  3. 构建工具(apache maven 3.6.3)
  4. 开发工具(IntelliJ IDEA )
  5. Kafka 2.11-2.0.0

3.演示代码

image-20200823102848138

总体结构说明:

  • config-repo: 配置文件仓库
  • ofc-bus-eureka: 注册中心,config-server 和 config-client 都注册到配置中心上
  • ofc-bus-config-server: 集成了 spring-cloud-bus 实现的 config-server
  • ofc-bus-config-client: 集成了 spring-cloud-bus 实现的 config-client

3.1 config-repo

管理配置文件,内部包含四个配置文件,分别是:soulballad.properties、soulballad-dev.properties、soulballad-prod.properties、soulballad-test.properties

内容如下:

# soulballad.properties
my.name=soulballad

# soulballad-dev.properties
my.name=soulballad-dev

# soulballad-prod.properties
my.name=soulballad-pro

# soulballad-test.properties
my.name=soulballad-test

3.2 ofc-bus-eureka

3.2.1 代码说明

eureka-server 服务端,提供 config-server 和 config-client 注册服务。

3.2.2 maven 依赖

pom.xml

<dependencies>
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
    </dependency>
</dependencies>

3.2.3 配置文件

application.yml

server:
  port: 11070

spring:
  application:
    name: ofc-bus-eureka

eureka:
  instance:
    hostname: localhost # 主机名
    prefer-ip-address: true # 优先使用ip
    instance-id: ${
   eureka.instance.hostname}:${
   spring.application.name}:${
   server.port} # 实例id
  client:
    register-with-eureka: false # eureka自我注册
    fetch-registry: false # 是否从注册中心获取注册信息
    service-url:
      defaultZone: http://${
   eureka.instance.hostname}:${
   server.port}/eureka/ # 注册中心地址

3.2.4 java代码

OfcBusEurekaApplication.java

@EnableEurekaServer
@SpringBootApplication
public class OfcBusEurekaApplication {
   

    public static void main(String[] args) {
   
        SpringApplication.run(OfcBusEurekaApplication.class, args);
    }
}

3.3 ofc-bus-config-server

3.3.1 代码说明

config-server 服务端,注册到 eureka 上。配置 spring-cloud-bus,使用 kafka 作为消息队列。

3.3.2 maven 依赖

pom.xml

<dependencies>
    <dependency>
        <groupId>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值