RabbitMQ的概念与使用

什么是MQ?

MQ 是消息队列(Message Queue)的简称。消息队列是一种应用程序间通信的方式,用于在不同的应用程序之间传递消息。它通过解耦发送者和接收者之间的直接依赖关系,提供了一种异步、可靠的消息传递机制。

什么是RabbitMQ?

RabbitMQ 是一个开源的消息队列中间件,它实现了高度可靠、灵活和可扩展的消息传递模型。作为消息队列系统,RabbitMQ 提供了在分布式应用程序之间传递消息的功能,并支持多种消息传递模式。

RabbitMQ 的主要特点和概念包括:

  1. 消息生产者和消费者:RabbitMQ 允许应用程序作为消息的生产者将消息发送到 RabbitMQ 的消息队列中,并允许其他应用程序作为消费者从队列中获取并处理消息。

  2. 消息队列:RabbitMQ 使用消息队列作为消息的中转站,生产者将消息发送到队列中,消费者从队列中获取并处理消息。消息队列充当了应用程序之间的解耦器,使得生产者和消费者之间不需要直接通信。

  3. 交换机(Exchange):交换机是 RabbitMQ 接收消息并将其路由到队列的组件。它根据一定的规则(例如路由键)将消息发送到一个或多个队列中。

  4. 队列绑定:消费者通过将队列绑定到交换机上来接收特定的消息。队列绑定指定了从哪个交换机接收消息以及如何路由消息到队列。

  5. 消息确认:RabbitMQ 支持消息的确认机制,即消费者在成功处理消息后向 RabbitMQ 发送确认信息,告知 RabbitMQ 可以将消息标记为已消费。这确保了消息不会在处理失败时丢失,并确保消息的可靠传递。

  6. 消息持久化:RabbitMQ 允许将消息和队列进行持久化,以确保在服务器重启或发生故障时消息不会丢失。

  7. 路由模式:RabbitMQ 支持多种路由模式,例如直接路由、主题路由和扇出路由,以满足不同的消息传递需求。

RabbitMQ结构图:

五种订阅模型:

分别有:

java 复制代码
基本消息队列(BasicQueue)
工作消息队列(WorkQueue)
Fanout Exchange:广播
Direct Exchange:路由
Topic Exchange:主题

ps:其中广播指的是,生产者将信息发送到交换机,然后交换机选择一个队列或多个队列进行发送消息,然后消费者订阅了那个队列,才能收到哪个队列的消息。

ps:路由指的是Direct Exchange 会将接收到的消息根据规则路由到指定的Queue,因此称为路由模式(routes)

ps:主题:和路由方式类似,只不过key需要两部分组成。

练习:

在Docker上进行联系,首先先拉去RabbitMQ,然后运行镜像得到容器。

然后根据自己的IP地址进行访问比如:http://192.168.xx.xx:15672

登录成功界面:

然后进行代码编写测试。

相关推荐
RainbowSea3 小时前
6. RabbitMQ 死信队列的详细操作编写
java·消息队列·rabbitmq
RainbowSea3 小时前
5. RabbitMQ 消息队列中 Exchanges(交换机) 的详细说明
java·消息队列·rabbitmq
数据智能老司机4 小时前
CockroachDB权威指南——CockroachDB SQL
数据库·分布式·架构
数据智能老司机5 小时前
CockroachDB权威指南——开始使用
数据库·分布式·架构
数据智能老司机5 小时前
CockroachDB权威指南——CockroachDB 架构
数据库·分布式·架构
IT成长日记6 小时前
【Kafka基础】Kafka工作原理解析
分布式·kafka
州周7 小时前
kafka副本同步时HW和LEO
分布式·kafka
ChinaRainbowSea8 小时前
1. 初始 RabbitMQ 消息队列
java·中间件·rabbitmq·java-rabbitmq
爱的叹息9 小时前
主流数据库的存储引擎/存储机制的详细对比分析,涵盖关系型数据库、NoSQL数据库和分布式数据库
数据库·分布式·nosql
千层冷面10 小时前
RabbitMQ 发送者确认机制详解
分布式·rabbitmq·ruby