当前位置: 首页>大数据>正文

Springboot集成RabbitMQ

安装

 1.拉取镜像

 2.启动容器

 3.开放linux端口及管理程序

开放管理程序

4.浏览器访问

浏览器访问: ​ http://ip:15673/#/​

输入用户名/密码:  guest/guet

Springboot集成RabbitMQ,第1张

 Springboot集成

1.导入依赖

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

 2.配置文件

spring:
  # 配置RabbitMQ
  rabbitmq:
    host: ip
    port: 5674
    username: guest
    password: guest
    # 虚拟主机
    virtual-host: my_vhost

  核心概念

生产者

产生数据发送消息的程序是生产者

交换机

交换机是 RabbitMQ 非常重要的一个部件,一方面它接收来自生产者的消息,另一方面它将消息推送到队列中。交换机必须确切知道如何处理它接收到的消息,是将这些消息推送到特定队列还是推送到多个队列,亦或者是把消息丢弃,这个得有交换机类型决定

队列

队列是 RabbitMQ 内部使用的一种数据结构,尽管消息流经 RabbitMQ 和应用程序,但它们只能存储在队列中。队列仅受主机的内存和磁盘限制的约束,本质上是一个大的消息缓冲区。许多生产者可以将消息发送到一个队列,许多消费者可以尝试从一个队列接收数据。这就是我们使用队列的方式

消费者

消费与接收具有相似的含义。消费者大多时候是一个等待接收消息的程序。请注意生产者,消费者和消息中间件很多时候并不在同一机器上。同一个应用程序既可以是生产者又是可以是消费者。

RabbitMQ的六种工作模式

  1. 简单队列模式(Simple Queue): 这是最基本的模式,也称为点对点模式。消息从生产者发送到队列,然后由消费者从队列中接收和处理。每条消息只有一个消费者能够接收,确保消息的顺序处理。

  2. 工作队列模式(Work Queue): 也称为任务队列模式。多个消费者共享一个队列来处理消息。每条消息只有一个消费者可以接收,但是消息可以被多个消费者中的一个处理,确保任务的分发和负载均衡。

  3. 发布/订阅模式(Publish/Subscribe): 在这种模式中,消息被发送到一个交换机(exchange),而不是直接发送到队列。交换机将消息广播到所有与之绑定的队列。这种模式适用于需要广播消息给多个消费者的场景。

  4. 路由模式(Routing): 这种模式在发布/订阅模式的基础上增加了消息的过滤。消息发送到交换机时,可以指定一个或多个路由键(routing key),交换机根据路由键将消息路由到绑定了匹配路由键的队列。

  5. 主题模式(Topics): 这是路由模式的扩展,允许使用通配符匹配路由键。发送者可以使用模糊匹配的路由键来发送消息,而接收者可以使用通配符匹配来接收特定类型的消息。

  6. RPC模式(Remote Procedure Call): 这种模式允许客户端调用远程服务器上的一个或一组方法,并等待响应。RPC 使用一个请求-响应的模式,客户端发送请求消息,服务器接收并处理请求后发送响应消息给客户端。

RabbitMQ的核心组件

  1. Broker(代理): RabbitMQ 代理是消息代理的核心组件,负责接收、存储和路由消息。它实现了 AMQP(高级消息队列协议)的标准,并提供了消息传递的基本功能。

  2. Exchange(交换机): 交换机是消息的接收和路由中心。生产者发送消息到交换机,交换机根据路由规则将消息路由到一个或多个队列中。RabbitMQ 提供了不同类型的交换机,如直连交换机、主题交换机、扇出交换机等,以满足不同的消息路由需求。

  3. Queue(队列): 队列是消息的缓冲区,用于存储待处理的消息。消费者从队列中接收消息并进行处理。队列可以配置不同的属性,如持久性、消息过期时间、最大长度等。

  4. Binding(绑定): 绑定定义了交换机如何将消息路由到队列。它将交换机和队列之间建立了关联,并指定了消息的路由规则。通常情况下,绑定由交换机的类型和绑定键(binding key)决定。

  5. Connection(连接): 连接是生产者和消费者与 RabbitMQ 代理之间的通信通道。每个连接都有一个唯一的通道(Channel),通过通道可以进行消息的发送和接收操作。连接可以通过 AMQP 协议进行安全的认证和授权。

  6. Virtual Host(虚拟主机): 虚拟主机是逻辑上的消息代理,用于实现不同的消息处理环境的隔离。每个虚拟主机都有独立的交换机、队列和权限设置,可以为不同的应用程序或服务提供独立的消息处理环境。

Springboot集成RabbitMQ,第2张

以上概念均来自chatgpt,具体模式请查看博客中的其他文章


https://www.xamrdz.com/bigdata/7fy1931685.html

相关文章: