rabbitmq消息队列简介

官网参考资料:RabbitMQ Documentation | RabbitMQ

参考资料对应github一起学习:https://github.com/rabbitmq/rabbitmq-tutorials

官网示例:RabbitMQ tutorial - "Hello World!" | RabbitMQ

服务器端口:5672

服务器监控浏览器(我的对应IP):http://192.168.216.104:15672/

dotnet下载依赖:

# 在项目目录中执行(支持 .NET Core/.NET 5+) dotnet add package RabbitMQ.Client # Stream 协议客户端(RabbitMQ.Stream.Client),和上面一个二选一 dotnet add package RabbitMQ.Stream.Client

工作模式

1、队列一对一,多个消费者,会轮询一个使用。生产者》队列》消费者

2、广播一对多

3、发布订阅、多对多

整体介绍

RabbitMQ是一个开源的消息中间件,它基于AMQP(Advanced Message Queue,高级消息队列协议)协议实现,用于在分布式系统中进行消息传递。以下是对RabbitMQ的详细介绍:

一、核心特性

  1. 可靠性:RabbitMQ使用持久化机制来确保消息的可靠性。它将消息存储在磁盘上,即使在服务器重启或发生故障时,消息也不会丢失。此外,RabbitMQ还支持消息确认机制(acknowledgment),确保消息被消费者正确接收并处理。
  2. 灵活的路由:RabbitMQ提供了多种交换机类型(如直连交换机、主题交换机、扇出交换机等),以及灵活的绑定规则,使得生产者发送的消息能够准确地被路由到指定的队列中。
  3. 多种协议支持:RabbitMQ支持多种消息队列协议,如AMQP、STOMP、MQTT等,使得不同系统之间可以方便地进行消息传递。
  4. 可伸缩性:RabbitMQ具有良好的可伸缩性,可以通过集群化部署来处理大规模的消息处理需求,并且可以根据实际负载情况进行动态扩展和收缩。
  5. 高性能:RabbitMQ具有较高的吞吐量和低延迟的特点,能够处理大量的消息流,并且能够通过消息预取机制提高消费者端的效率。
  6. 插件机制:RabbitMQ支持通过插件进行功能扩展,例如,可以使用插件来实现消息加密、消息压缩、消息追踪等功能。
  7. 易用的管理界面:RabbitMQ提供了一个易于使用的管理界面(Management UI),用户可以通过图形化界面来监控和管理消息队列的状态和性能。

二、核心概念

  1. Virtual Host:虚拟主机,标识一批交换机、消息队列和相关对象。虚拟主机是共享相同的身份认证和加密环境的独立服务器域。
  2. Exchange:交换器,用来接收生产者发送的消息并将这些消息路由给服务器中的队列。
  3. Queue:消息队列,用来保存消息直到发送给消费者。它是消息的容器,也是消息的终点。
  4. Binding:绑定,用于消息队列和交换机之间的关联。一个绑定就是基于路由键将交换机和消息队列连接起来的路由规则。
  5. Channel:信道,多路复用连接中的一条独立的双向数据流通道。AMQP命令都是通过信道发出去的。
  6. Connection:网络连接,比如一个TCP连接。
  7. Publisher:消息的生产者,也是一个向交换器发布消息的客户端应用程序。
  8. Consumer:消息的消费者,表示一个从一个消息队列中取得消息的客户端应用程序。
  9. Message:消息,由消息头和消息体组成。消息体是不透明的,而消息头则是由一系列的可选属性组成。

三、工作模式

  1. Simple(简单)模式:一个生产者将消息放入队列,一个消费者监听队列并消费消息。
  2. Work(工作)模式:一个生产者将消息放入队列,多个消费者同时监听同一个队列并争抢消息进行消费。
  3. Publish/Subscribe(发布/订阅)模式:生产者将消息发送到交换机,交换机将消息发送到所有绑定的队列中,每个队列的消费者都可以消费消息。
  4. Routing(路由)模式:生产者将消息发送到交换机,交换机根据路由键将消息路由到匹配的队列中。
  5. Topic(主题)模式:是路由模式的一种,使用通配符进行模糊匹配,将消息路由到匹配的队列中。

四、应用场景

  1. 异步消息传递:RabbitMQ可以处理大量的消息传递,适用于异步任务的处理、消息队列等场景。
  2. 解耦系统组件:通过使用RabbitMQ,可以将系统的不同组件解耦,使系统更具可伸缩性和灵活性。
  3. 负载均衡:RabbitMQ支持发布/订阅模式,可以将消息发送到多个消费者进行处理,实现负载均衡。
  4. 日志收集:RabbitMQ可以用作日志收集系统的消息中间件,应用程序可以将日志消息发送到RabbitMQ中,然后由日志消费者进行处理和存储。
  5. 任务队列:通过将任务放入RabbitMQ中,可以实现任务队列的分发和处理。
  6. 实时数据处理:RabbitMQ可以用作实时数据处理的消息中间件,生产者可以将实时数据发送到RabbitMQ中,消费者可以及时地接收和处理这些数据。

综上所述,RabbitMQ是一个功能强大、灵活可靠的消息中间件,适用于各种分布式系统中的消息传递场景。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值