RabbitMQ 五种队列大纲

RabbitMQ 五种队列大纲

RabbitMQ 是一款流行的开源消息中间件,在其消息模型中,消息生产者通过交换器将消息发送到队列中,而消息消费者则从队列中接收并处理消息。 RabbitMQ 支持五种不同类型的队列,每种队列都有其特定的使用场景和配置参数,下面是这五种队列的详细说明:

  1. Simple Queue:简单队列

一个生产者对应一个消费者, 有消息即取走

简单队列也称为点对点队列,是 RabbitMQ 中最基本的队列类型。 它将消息存储在一个队列中,并将它们传递给单个消费者。 可以使用此队列来处理数据量较小的任务,例如日志记录和通知。

缺点: 耦合性高, 一个消费者一 一对应一个生产者

  1. Work Queue: 工作队列

改进之后, 当然是一个生产者对应多个消费者

工作队列也称为消息队列,用于将工作负载分配给多个工作进程。 它允许将消息分配给多个工人,并确保每个消息只被一个工人处理。 该队列可用于处理大量的时间复杂度较高的任务,有轮询分发机制, 就是无论消费者处理业务逻辑快慢, 分发一样的消息给消费者,公平分发机制, 根据消费者处理业务逻辑的代码快慢分发, 根据手动返回ACK值, 关闭自动发送。

缺点:返回机制防止了消息队列挂掉导致数据丢失,但服务器突然挂掉怎么办?
采用持久化数据, 声明队列时候持久化消息 durable = true

  1. Publish/Subscribe Queue: 发布/订阅队列

在生产者后添加了一个交换机(exchange) 后面跟多个队列和消费者

发布/订阅队列也称为广播队列,在将消息发送到多个消费者时非常有用。 发布者将消息发布到交换机中,并将其绑定到一个或多个队列。 然后,所有与该队列相关联的消费者都会接收到该消息。 此队列可用于广播事件和通知。

  1. Routing Queue: 路由队列

声明交换机是设置 direct

路由队列也称为直连队列,允许使用多个路由键来将消息路由到多个队列。 它通过使用交换机和绑定来将消息路由到指定的队列,可用于处理需要不同消息类型的多个消费者应用程序。

  1. Topic Queue: 主题队列

声明交换机是设置 topic 将路由键和某种模式匹配 是在路由模式上的改进, 比如goods.#, 可以匹配goods.1,goods.aaa, goods.2 等路由键值

主题队列也称为通配符队列,允许使用通配符匹配多个路由键,将消息路由到多个队列中。 它在路由键使用模式匹配时非常有用,将匹配的消息路由到正确的队列,并将其发送给正确的接收者。

每种队列类型都有其自己的优势和用途,选择正确的队列类型可确保您的消息在传递过程中得到正确处理。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我的头发哪去了

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值