RabbitMQ实战

  1. SpringBoot 整合 RabbitMQ 注意:
  2. Work 模型
  3. 为什么需要交换机?
  4. fanout 交换机
  5. Direct 交换机
  6. Topic 交换机
  7. 生产者可靠性
  8. MQ可靠性
  9. 消费者可靠性
  10. 延迟消息

SpringBoot 整合 RabbitMQ 注意:

端口 15672:这是 RabbitMQ 管理界面的默认端口,这个端口可以对 RabbitMQ 后台管理。

端口 5672:这是 RabbitMQ 默认的 AMQP 协议端口。客户端通常使用这个端口与 RabbitMQ 服务器建立连接进行消息传递操作。

在配置文件 application.yml 进行 RabbitMQ 配置时,连接端口是 5672。

Work 模型

多个消费者绑定到一个队列,加快消息处理速度。在消费者服务中,可以配置 prefetch 控制消费者预取的消费数量,处理完一条才处理剩余的,类似负载均衡。

为什么需要交换机?

交换机可以实现生产者预消费者解耦,生产者无需关心消息会发送到哪个队列、被哪个消费者消费。生产者只需面向交换机,消费者只需面向队列。

fanout 交换机

fanout 交换机会将所有接收到的消息广播给所有与之绑定的队列。

image-20240309175129139

Direct 交换机

可以指定交换机与哪个队列进行绑定。

image-20240309180620965

Topic 交换机

image-20240309192215485

https://cloud.tencent.com/developer/article/1970418

生产者可靠性

生产者确认

异步确认

MQ可靠性

数据持久化

  • 交换机持久化
  • 队列持久化
  • 消息持久化

消费者可靠性

手动ACK

延迟消息

image-20240618144744184

普通交换机不绑定消费者,相当于让消息在里面等待,如果消息设置了过期时间,当时间到了就到死信交换机,在死信交换机中正常处理,这就达到了延迟消息的效果。


转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 1216271933@qq.com

×

喜欢就点赞,疼爱就打赏