【RabbitMQ】RabbitMQ基本介绍

本文详细介绍了RabbitMQ作为AMQP消息中间件的工作原理、工作模式,包括简单模式、发布/订阅、路由和主题模式,以及确认机制(事务确认和confirm确认)。此外,还涵盖了死信队列的设置、内存磁盘监控和预警。
摘要由CSDN通过智能技术生成

一、基本介绍

  • RabbitMQ 即一个消息队列,主要是用来实现应用程序的异步和解耦,同时也能起到消息缓冲(削峰填谷),消息分发的作用。
  • 消息中间件最主要的作用是解耦,中间件最标准的用法是生产者生产消息传送到队列,消费者从队列中拿取消息并处理,生产者不用关心是谁来消费,消费者不用关心谁在生产消息,从而达到解耦的目的。在分布式的系统中,消息队列也会被用在很多其它的方面,比如:分布式事务的支持,RPC的调用等等。
  • RabbitMQ是实现AMQP(高级消息队列协议)的消息中间件的一种,最初起源于金融系统,用于在分布式系统中存储转发消息,在易用性、扩展性、高可用性等方面表现不俗。RabbitMQ主要是为了实现系统之间的双向解耦而实现的。当生产者大量产生数据时,消费者无法快速消费,那么需要一个中间层。保存这个数据。
  • AMQP,即Advanced Message Queuing Protocol,高级消息队列协议,是应用层协议的一个开放标准,为面向消息的中间件设计。消息中间件主要用于组件之间的解耦,消息的发送者无需知道消息使用者的存在,反之亦然。AMQP的主要特征是面向消息、队列、路由(包括点对点和发布/订阅)、可靠性、安全。
  • RabbitMQ是一个开源的AMQP实现,服务器端用Erlang语言编写,支持多种客户端,如:Python、Ruby、.NET、Java、JMS、C、PHP、ActionScript、XMPP、STOMP等,支持AJAX。用于在分布式系统中存储转发消息,在易用性、扩展性、高可用性等方面表现不俗。

二、工作模式:

备注:P=发送者、X=交换机、红色长方形=队列、C=消费者

1、简单模式

在这里插入图片描述

2、工作模式

在这里插入图片描述

3、发布/订阅模式

在这里插入图片描述

4、路由模式(全匹配)

在这里插入图片描述

5、主题模式(规则匹配)

在这里插入图片描述

6、RPC

在这里插入图片描述

三、确认机制

1、事物确认机制:通过事物控制,是否成功,失败则会滚

2、confirm确认机制-同步:串行实现单个或者多个确认

2、confirm确认机制-异步:通过回调实现确认

四、死信队列

1、介绍:过期时间TTL表示可以对消息设置预期的时间,在这个时间内都可以被消费者接收获取;过了之后消息将自动被删除。Rabbit可以对消息和队列设置TTL。

2、设置队列参数信息(过期时间、死信队列)

在这里插入图片描述

3、通过代码实现

创建队列时:
在这里插入图片描述
发送消息时:
在这里插入图片描述

五、内存磁盘监控

1、磁盘预警

在这里插入图片描述

概述
  • 当磁盘的剩余空间低于确定的阈值时, Rabbits同样会阻塞生产者,这样可以避免因非持久化的消息持续换页而耗尽
    磁盘空间导致服务器崩溃
  • 默认情况下:磁盘预警为50MB的时候会进行预警。表示当前磁盘空间第50MB的时候会阻塞生产者并且停止内存消
    息换页到磁盘的过程
  • 这个阈值可以减小,但是不能完全的消除因磁盘耗尽而导致崩溃的可能性。比如在两次磁盘空间的检查空隙内
    次检查是:60MB,第二检查可能就是1MB就会出现警告。
设置预警

在这里插入图片描述

2、基本介绍

  • 默认内存为机器内存的0.4
  • 内存推荐设置在0.4-0.7区间
  • 默认小于磁盘大小警告50

3、设置内存大小

使用命令修改
  • 设置内存大小(相对):rabbitmqctl set_vm_memory_high_watermark 50MB
  • 设置内存大小(绝对):rabbitmqctl set_vm_memory_high_watermark absolute 50MB
修改配置文件

在这里插入图片描述

4、内存换页

概述
  • 在某个 Broke节点及内存阻塞生产者之前,它会尝试将队列中的消思换页到磁盘以释放内存空间,持久化和非持久化的消息都会写入磁盘中,其中持久化的消息本身就在磁盘中有一个副本,所以在转移的过程中持久化的消息会先从内存中消除掉。
  • 默认情况下,内存到达的阈值是50%时就会换页处理。也就是说,在默认情况下该内存的阈值是0.4的情况下,当内存超过0.4*0.5=0.2时,会进行换页动作
设置

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值