SpringCloud Bus如何配置消息总线及中心实现步骤详解?

2026-05-26 06:031阅读0评论SEO资讯
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计861个文字,预计阅读时间需要4分钟。

SpringCloud Bus如何配置消息总线及中心实现步骤详解?

介绍和使用场景:消息是一种事件,它表示一个操作或状态的变化。消息可以是一个简单的通知,也可以是复杂的业务数据。在分布式系统中,消息通常用于以下场景:

1. 广播:将消息发送给系统中的所有相关组件。

2.单独传递:将消息发送给特定的组件或接口。

为什么使用这个配置更新了:

SpringCloud Bus如何配置消息总线及中心实现步骤详解?

使用消息配置更新了,是因为它提供了以下优势:

1. 解耦:消息的使用使得生产者和消费者之间的依赖性降低,从而提高了系统的可维护性和可扩展性。

2.异步处理:消息传递允许异步处理,提高了系统的响应速度和吞吐量。

3.高可用性:消息队列通常具备高可用性,即使某些组件发生故障,也不会影响消息的传递和处理。

Spring Cloud 配置中心可参考:

https://www.jb51.com/article/184948.htm

介绍和使用场景

1)什么是消息

一个事件,需要广播或者单独传递给某个接口

2)为什么使用这个

配置更新了,但是其他系统不知道是否更新

SpringCloud配置中心可参考:

www.jb51.net/article/182888.htm

1.安装RabbitMQ

下载地址:

erlang.org/download/

Erlang版本:Erlang OTP 21:10.0.1

下载地址:

www.rabbitmq.com/install-windows.html

RabbitMQ版本:Rabbitmq: 3.7.15

2.访问地址

127.0.0.1:15672/

用户名:guest

密码:guest

3.添加依赖

例如:

商品服务添加下面依赖,配置中心服务不用加

<!-- bus,rabbitmq --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-bus-amqp</artifactId> </dependency>

4.修改Controller

添加@RefreshScope注解

@RestController @RequestMapping("/api/v1/product") @RefreshScope public class ProductController { @Value("${server.port}") private String port; //这是自己加的配置 @Value("${env}") private String env; @RequestMapping("/list") public Object getAllList() { String msg = "data from port: " + port + ",env: " + env); return ; } }

5.添加项目中的bootstrap..yml配置

spring: #添加RabbitMQ配置 rabbitmq: host: localhost port: 5672 username: guest password: guest #暴露全部的监控信息 management: endpoints: web: exposure: include: "*"

6.启动项目后,修改git中的yml配置env,再用Postman调用下面接口

步骤:

修改git的application.yml配置

1)修改端口号为:8771,启动项目

)修改端口号为:8772,启动项目

修改env为:test1234

注意:

使用SpringCloud配置中心后,在idea中修改配置-Dserver.port=8772启动项目是不生效的

7.访问接口,查看返回的env是否改变,evn值均变为test123456

127.0.0.1:8771/api/v1/product/find?id=1

127.0.0.1:8772/api/v1/product/find?id=1

建议:

动态刷新配置,在开发和测试环境使用,尽量少在生产环境使用

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持易盾网络。

本文共计861个文字,预计阅读时间需要4分钟。

SpringCloud Bus如何配置消息总线及中心实现步骤详解?

介绍和使用场景:消息是一种事件,它表示一个操作或状态的变化。消息可以是一个简单的通知,也可以是复杂的业务数据。在分布式系统中,消息通常用于以下场景:

1. 广播:将消息发送给系统中的所有相关组件。

2.单独传递:将消息发送给特定的组件或接口。

为什么使用这个配置更新了:

SpringCloud Bus如何配置消息总线及中心实现步骤详解?

使用消息配置更新了,是因为它提供了以下优势:

1. 解耦:消息的使用使得生产者和消费者之间的依赖性降低,从而提高了系统的可维护性和可扩展性。

2.异步处理:消息传递允许异步处理,提高了系统的响应速度和吞吐量。

3.高可用性:消息队列通常具备高可用性,即使某些组件发生故障,也不会影响消息的传递和处理。

Spring Cloud 配置中心可参考:

https://www.jb51.com/article/184948.htm

介绍和使用场景

1)什么是消息

一个事件,需要广播或者单独传递给某个接口

2)为什么使用这个

配置更新了,但是其他系统不知道是否更新

SpringCloud配置中心可参考:

www.jb51.net/article/182888.htm

1.安装RabbitMQ

下载地址:

erlang.org/download/

Erlang版本:Erlang OTP 21:10.0.1

下载地址:

www.rabbitmq.com/install-windows.html

RabbitMQ版本:Rabbitmq: 3.7.15

2.访问地址

127.0.0.1:15672/

用户名:guest

密码:guest

3.添加依赖

例如:

商品服务添加下面依赖,配置中心服务不用加

<!-- bus,rabbitmq --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-bus-amqp</artifactId> </dependency>

4.修改Controller

添加@RefreshScope注解

@RestController @RequestMapping("/api/v1/product") @RefreshScope public class ProductController { @Value("${server.port}") private String port; //这是自己加的配置 @Value("${env}") private String env; @RequestMapping("/list") public Object getAllList() { String msg = "data from port: " + port + ",env: " + env); return ; } }

5.添加项目中的bootstrap..yml配置

spring: #添加RabbitMQ配置 rabbitmq: host: localhost port: 5672 username: guest password: guest #暴露全部的监控信息 management: endpoints: web: exposure: include: "*"

6.启动项目后,修改git中的yml配置env,再用Postman调用下面接口

步骤:

修改git的application.yml配置

1)修改端口号为:8771,启动项目

)修改端口号为:8772,启动项目

修改env为:test1234

注意:

使用SpringCloud配置中心后,在idea中修改配置-Dserver.port=8772启动项目是不生效的

7.访问接口,查看返回的env是否改变,evn值均变为test123456

127.0.0.1:8771/api/v1/product/find?id=1

127.0.0.1:8772/api/v1/product/find?id=1

建议:

动态刷新配置,在开发和测试环境使用,尽量少在生产环境使用

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持易盾网络。