RabbitMQ高级特性

本文涉及的产品
容器服务 Serverless 版 ACK Serverless,952元额度 多规格
容器服务 Serverless 版 ACK Serverless,317元额度 多规格
简介: RabbitMQ高级特性

一、消息可靠性
背景/需求:消息从发送,到消费者接收,会经历多个过程:
其中的每一步都可能导致消息丢失,常见的丢失原因包括:

发送时丢失:

生产者发送的消息【未送达exchange】——返回nack(消息确认模式)
消息【到达exchange】——返回ack(消息确认模式)
到达queue后,MQ宕机,queue将消息丢失
——返回ACK,及路由失败原因(回退模式)

consumer接收到消息后还未消费就宕机——消息持久化

1、【生产者】消息确认
RabbitMQ提供了publisher confirm机制来避免消息发送到MQ过程中丢失。这种机制必须给每个消息指定一个唯一ID。消息发送到MQ以后,会返回一个结果给发送者,表示消息是否处理成功。

返回结果有两种方式:

publisher-confirm,发送者确认
消息成功投递到交换机,返回ack
消息未投递到交换机,返回nack
publisher-return,发送者回执
消息投递到交换机了,但是没有路由到队列。返回ACK,及路由失败原因。
注意:确认机制发送消息时,需要给每个消息设置一个全局唯一id,以区分不同消息,避免ack冲突

2、AMQP核心概念
Server:又称Broker,接受客户端的连接,实现AMQP实体服务
Connection:连接,应用程序与Broker的网络连接
Channel:网络信道,几乎所有的操作都在Channel在进行,Channel是进行消息的读写的通道.客户端可建立多个Channel,每个Channel代表一个会话任务.
Message:消息,服务器与应用程序之间传送的数据,由Properties和Body组成.Properties可以对消息进行修饰,比如消息的优先级,延迟等高级特性;Body则就是消息体内容.
Virtual host:虚拟地址,用于进行逻辑分离,最上层的消息路由.一个Virtual Host里面可以有若干个Exchange和Queue,同一个Virtual Host里面不能有相同名称的Exchange或Queue.
Exchange:交换机,接收消息,根据路由键转发消息到绑定的队列.
Binding:Exchange和Queue之间的虚拟连接,binding中可以包含routing key
Routing key:一个路由规则,虚拟机可以用它来确定如何路由一个特定消息
Queue:也称Message Queue,消息队列,保存消息并将它们转发给消费者

相关实践学习
消息队列RocketMQ版:基础消息收发功能体验
本实验场景介绍消息队列RocketMQ版的基础消息收发功能,涵盖实例创建、Topic、Group资源创建以及消息收发体验等基础功能模块。
消息队列 MNS 入门课程
1、消息队列MNS简介 本节课介绍消息队列的MNS的基础概念 2、消息队列MNS特性 本节课介绍消息队列的MNS的主要特性 3、MNS的最佳实践及场景应用 本节课介绍消息队列的MNS的最佳实践及场景应用案例 4、手把手系列:消息队列MNS实操讲 本节课介绍消息队列的MNS的实际操作演示 5、动手实验:基于MNS,0基础轻松构建 Web Client 本节课带您一起基于MNS,0基础轻松构建 Web Client
相关文章
|
11月前
|
消息中间件 存储 负载均衡
RocketMQ高级特性
RocketMQ高级特性
92 1
|
消息中间件 Java 程序员
SpringBoot整合RocketMQ,尝尝几大高级特性!
作为一名程序员,您一定熟悉RocketMQ的功能,包括支持事务、顺序和延迟消息等。在程序员界有一句名言,“Talk is cheap. Show me the code” 。本文将通过实际案例来引出解决方案,并通过代码实现,让您在学习本节的过程中能够确切地掌握实际编码技能
174 0
SpringBoot整合RocketMQ,尝尝几大高级特性!
|
消息中间件 缓存 NoSQL
Springboot 整合 RabbitMQ高级特性 & 真实业务应用
🐇🐇前言:我们的RabbitMQ经常被用来做⚡秒杀类业务⚡,所以在商城类项目中充当着一个很重要的中间件,关于它的高级特性和企业级项目中的一些重点问题的解决方案在这里我会进行详细的总结, 并在最后展示一部分。
310 0
|
消息中间件 网络性能优化 API
RabbitMQ高级特性
RabbitMQ高级特性
105 0
RabbitMQ高级特性
|
消息中间件 缓存 监控
RabbitMQ之高级特性
RabbitMQ,高级特性
191 0
|
消息中间件 存储 SQL
RabbitMQ精讲4:深入RabbitMQ高级特性-可靠性投递、幂等性消费、Confirm确认消息、Return返回消息
RabbitMQ精讲4:深入RabbitMQ高级特性-可靠性投递、幂等性消费、Confirm确认消息、Return返回消息
558 0
RabbitMQ精讲4:深入RabbitMQ高级特性-可靠性投递、幂等性消费、Confirm确认消息、Return返回消息
|
消息中间件
RabbitMQ高级特性-死信队列(DLX,Dead-Letter-Exchange)(下)
RabbitMQ高级特性-死信队列(DLX,Dead-Letter-Exchange)
123 0
RabbitMQ高级特性-死信队列(DLX,Dead-Letter-Exchange)(下)
|
消息中间件
RabbitMQ高级特性-死信队列(DLX,Dead-Letter-Exchange)(上)
RabbitMQ高级特性-死信队列(DLX,Dead-Letter-Exchange)
150 0
RabbitMQ高级特性-死信队列(DLX,Dead-Letter-Exchange)(上)
|
消息中间件
RabbitMQ高级特性-TTL(Time-To-Live 过期时间)
RabbitMQ高级特性-TTL(Time-To-Live 过期时间)
113 0
RabbitMQ高级特性-TTL(Time-To-Live 过期时间)
|
消息中间件
RabbitMQ高级特性之延时消息/队列
RabbitMQ高级特性之延时消息/队列
98 0