RabbitMQ学习
文章平均质量分 91
翻译RabbitMQ官方教程,记录梳理学习RabbitMQ的有关内容
布碗
这个作者很懒,什么都没留下…
展开
-
RabbitMQ学习(二十一):使用消息有效期TTL和死信路由DLX实现消息延迟重试消费的限制
说明在之前的一篇博文《springboot学习(十三):RabbitMQ的使用 实现消息延迟消费》中,我简单介绍了使用Rabbitmq的消息有效期和死信路由的特性实现消息的延迟消费。在后续的使用中,希望通过这两种特性实现针对消息自定义过期时间实现延迟消费,但是发现Rabbitmq并不支持。本篇博文将对使用中出现的问题进行总结记录。正文在之前延迟消费一文的示例代码中,每个消息都设置了5s的有效...原创 2020-03-29 15:08:56 · 1500 阅读 · 0 评论 -
RabbitMQ的应用场景以及基本原理介绍
原文地址:https://blog.csdn.net/whoamiyang/article/details/54954780 1.背景RabbitMQ是一个由erlang开发的AMQP(Advanved Message Queue)的开源实现。2.应用场景2.1异步处理场景说明:用户注册后,需要发注册邮件和注册短信,传统的做法有两种1.串行的方式;2.并行的方式 ...转载 2018-05-18 14:13:02 · 375 阅读 · 0 评论 -
RabbitMQ学习(一): "Hello World"
说明本篇博文是翻译自RabbitMQ官方教程的第一篇教程,用来总结记录梳理当时的学习内容,由于水平有限,有些地方翻译的不合适或者有误,希望大家能及时指正。最后,还是强烈推荐大家直接阅读官方的教程文档。正文简介RabbitMQ是一个消息中间件:它接收和发送消息。你可以把它作为一个邮局:当你想要发送邮件并将信封放到邮箱后,你可以确定邮递员最终将会把这个封信送到收信人手中。基于这个比喻,Rabb...翻译 2019-02-11 20:55:18 · 1034 阅读 · 0 评论 -
RabbitMQ学习(二):Work Queues
说明通过翻译上篇博文,我们初步了解了RabbitMQ的使用方式,本篇博文将继续翻译官方的第二篇教程Work Queues, 通过本次翻译,我将简单记录梳理有关RabbitMQ的消息派发方式,消息确认机制,消息持久化等内容。正文任务队列在第一篇教程中,我们写了从指定队列中发送和接收消息的程序。在本篇教程中我们将创建一个工作队列,它将被用于在多个消费者中分发耗时任务。工作队列(又名:任务队...翻译 2019-02-16 23:02:46 · 858 阅读 · 0 评论 -
RabbitMQ学习(三):Publish/Subscribe
说明在第二篇教程中,我们了解了RabbitMQ的消息派发方式,消息持久化及消息确认相关内容。本文将继续翻译官方的第三篇教程Publish/Subscribe, 通过本篇教程我们将继续了解RabbitMQ一个功能强大的组件-----交换机(Exchanges),通过其中的一种交换机实现RabbitMQ对消息的发布订阅模式。正文发布/订阅(Publish/Subscribe)在前一篇教程中,我...翻译 2019-02-24 22:54:08 · 795 阅读 · 0 评论 -
RabbitMQ学习(四):Routing
说明通过前一篇教程,我们对RabbitMQ的消息传递模型有了初步的认识,了解了Exchange这一强大的组件,并通过fanout类型的交换机创建了一个简单的日志系统,实现了发布-订阅的消息发送模式。本篇博文将继续翻译官方第四篇教程Routing,通过本篇教程我们将加深对Exchange的了解,初步学习它的一个强大功能—消息路由,通过Exchange的路由功能使得我们发送消息更具有灵活性。正文...翻译 2019-02-28 22:52:03 · 683 阅读 · 0 评论 -
RabbitMQ学习(五):Topics
说明在之前的教程中,我们已经对Exchange有了更深的了解,学习了Fanout和Direct类型的交换机,学习了交换机根据规则对消息灵活路由的强大功能特性。通过简单的程序练习,对RabbitMQ的消息传递模型有了深入的认识。本篇博文将继续翻译官方第五篇教程Topics,通过本篇教程我们将继续学习另一种Topic交换机,该类型交换机比Direct交换机的功能更强大,消息路由更加灵活。正文在前...翻译 2019-03-02 20:45:00 · 692 阅读 · 0 评论 -
RabbitMQ学习(六):Remote procedure call
说明通过前面五篇教程,我们已经学习了RabbitMQ的基本使用方法,了解了RabbitMQ的消息派发方式,消息的持久化,消息确认机制… 通过简单的程序,对RabbitMQ的消息传递模型有了初步了解,学习了Fanout,Direct,Topic三种类型交换机的使用,明白了消息路由的实现机制。本篇教程将继续翻译官方的第六篇教程RPC,学习如何通过RabbitMQ实现远程过程调用。正文在第二篇教程...翻译 2019-03-04 23:18:06 · 799 阅读 · 0 评论 -
RabbitMQ学习(七):AMQP 0-9-1 协议之简单概述
说明通过之前翻译的六篇官方教程,我们已经学会了如何使用RabbitMQ。我们都知道RabbitMQ是一个支持多种协议的消息队列,本篇博文将翻译官方对于AMQP 0-9-1协议的介绍:AMQP 0-9-1 Model Explained。 通过翻译记录该协议的内容,加深对RabbitMQ消息队列的理解。正文什么是AMQP 0-9-1协议?在阅读RabbitMQ提供的该协议介绍前,我们可以在网...翻译 2019-03-11 22:07:34 · 828 阅读 · 0 评论 -
RabbitMQ学习(八):AMQP 0-9-1 协议之Exchange
说明通过上篇博文翻译了RabbitMQ官方文档关于AMQP协议介绍的一小部分,本篇博文将继续翻译有关AMQP协议的相关内容,主要记录AMQP协议中Exchange实体相关知识,学习在RabbitMQ中Exchange的类型及其作用。正文Exchanges and Exchange Type交换机是AMQP 0-9-1协议中的一种实体。在发送消息时,消息将被直接发送到该类实体中,并且交换机将...翻译 2019-03-30 16:25:03 · 1260 阅读 · 0 评论 -
RabbitMQ学习(九):AMQP 0-9-1 协议之Queues
说明通过上篇博文翻译了AMQP协议中有关交换机Exchange的相关介绍,本篇博文将继续翻译AMQP协议中有关队列的内容,通过翻译学习记录AMQP模型中的另一实体Queue。正文QueuesAMQP 0-9-1模型中的队列与其他消息任务队列系统中的队列十分相似:它们都存储要被应用程序处理的消息。队列和交换机共享一些属性,同时它还有一些特别的属性:NameDurable (持久化,若该...翻译 2019-04-14 11:21:32 · 861 阅读 · 0 评论 -
RabbitMQ学习(十): AMQP 0-9-1协议之Consumer and Message
说明通过上篇博文翻译了AMQP协议中有关队列Queues的相关内容,本篇博文将继续翻译官方关于AMQP协议介绍的有关Consumer和Message部分的内容。通过翻译,学习记录在RabbitMQ中AMQP协议的Consumer和Message的作用。正文Consumers队列中存储的消息如果不能被程序消费处理,那它们就是无用的。在AMQP 0-9-1模型中,应用程序有两种方式从队列获取消...翻译 2019-04-21 15:51:55 · 1162 阅读 · 0 评论 -
RabbitMQ学习(十一):AMQP 0-9-1协议之Connections and Channels
说明通过前面几篇博文,翻译学习了有关AMQP协议的相关内容,对AMQP的几个实体概念有了初步认识,本篇博文将继续翻译RabbitMQ有关AMQP协议介绍的最后一部分内容,这部分内容介绍了AMQP服务器和客户端连接的基本知识。通过本篇博文,将会了解到AMQP的操作连接是基于共享TCP连接上创建的轻量级连接------通道(channel)。正文ConnectionsAMQP 0-9-1协议的...翻译 2019-05-02 14:45:43 · 961 阅读 · 0 评论 -
RabbitMQ学习(十二): 队列和消息的有效期 (Queue and Message TTL)
说明在之前的一篇博文《springboot学习(十三):RabbitMQ的使用 实现消息延迟消费》中,我使用RabbitMQ来达到失败消息的延迟重试的目的。其中就使用了消息的TTL和 死信交换机( Dead Letter Exchanges)。本篇博文我将继续翻译学习官方文档中对消息和队列的TTL的相关详解,通过本文我们将了解消息的TTL和队列的TTL,在设置时的差别等等内容。正文概述R...翻译 2019-06-09 12:06:27 · 3439 阅读 · 0 评论 -
RabbitMQ学习(十三):死信交换机 (Dead Letter Exchanges)
说明在上篇博文《RabbitMQ学习(十二): 队列和消息的有效期》中,我对官方文档有关队列和消息的TTL进行了翻译学习,消息的TTL是实现延迟重试队列的关键因素,但仅仅有消息的有效期还无法实现过期消息的消费,本篇博文将继续翻译学习官方文档中有关死信交换机(DLX)的内容, 通过此交换机,可以实现过期消息的重新路由,进而实现延迟重试。正文概述队列中的消息可能会变成死信消息(dead-let...翻译 2019-06-22 21:52:23 · 11034 阅读 · 0 评论 -
RabbitMQ学习(十四):队列长度限制(Queue Length Limit)
说明在上篇博文《RabbitMQ学习(十三):死信交换机》中,我对官方文档有关死信交换机的内容进行了翻译和学习,文中提到消息成为死信的原因有三种,队列长度的限制就是其中之一。本篇博文我将继续翻译学习官方文档中有关队列长度限制的相关的内容,通过本文记录学习总结有关队列长度限制如何设置,超出限制队列如何处理等内容。正文概述队列的最大长度限制可以是限制消息的数量,或者是消息的总字节数(总字节数表...翻译 2019-06-25 00:01:46 · 9188 阅读 · 3 评论 -
RabbitMQ学习(十五):消极确认(Negative Acknowledgements)
说明在之前的一篇博文《RabbitMQ学习(十三):死信交换机 (Dead Letter Exchanges)》中我们了解到,消息变为死信有三个原因,其中就有因为消费者的消极确认(negative acknowledgements),并且将requeue标记设置为false导致消息变为死信。本篇博文将继续翻译学习RabbitMQ官方文档中有关Negative Acknowledgements的内...翻译 2019-07-07 16:49:33 · 1201 阅读 · 0 评论 -
RabbitMQ学习(十六):消息确认之消费者确认模式 I
说明通过上篇博文《RabbitMQ学习(十五):消极确认》我们初步了解了消费者对消息确认的相关内容,通过消极确认,消费者可以拒绝一个消息。本篇博文,我将继续翻译学习官方文档中关于消息确认的相关内容。由于原文档太长,本篇博文只翻译消费者确认的部分内容。通过本篇博文,我们将了解到消息确认机制的意义,消息确认的不同模式,消息确认对吞吐量的影响等内容。概述消息者确认机制和发送者确认机制对数据安全十分...翻译 2019-07-27 17:37:52 · 1530 阅读 · 0 评论 -
RabbitMQ学习(十七):消息确认之消费者确认模式 II
说明在上篇博文《RabbitMQ学习(十六):消息确认之消费者确认模式 I》中对消息确认的必要性和确认相关的传输标签,消费者确认方法等内容进行了翻译学习,本篇博文我将继续翻译学习消息者确认模式的剩余内容,主要包含了积极消极确认的方式,批量确认消息,通道Prefetch值的设置以及它和确认模式对吞吐量的影响,还有异常时的自动重新入队,客户端常见错误等内容。正文积极确认在客户端包中对消息进行确...翻译 2019-08-04 15:58:36 · 1555 阅读 · 0 评论 -
RabbitMQ学习(十八):消息确认之发送者确认模式
说明通过之前的两篇博文《RabbitMQ学习(十六):消息确认之消费者确认模式 I》和《RabbitMQ学习(十七):消息确认之消费者确认模式 II》,对消费者确认模式进行了翻译学习,本篇博文将继续翻译学习文档的最后一部分,有关发送者确认模式的内容。内容包含了服务器如何对生产者发送的消息进行确认,消息确认的时机,确认消息的顺序等内容。正文发送者确认网络可能一些不明显的原因发生故障,并且检测...翻译 2019-08-11 17:56:23 · 1290 阅读 · 0 评论 -
RabbitMQ学习(十九):消费者的未确定消息数限制(Consumer Prefetch)
说明在之前的博文《RabbitMQ学习(十七):消息确认之消费者确认模式 II》中,我对有关消费者确认模式进行了翻译学习,其中提到了对通道Prefetch Count设置及该值对吞吐量的影响。本篇博文将继续翻译学习如何设置通道的Prefetch Count,及方法参数不同值的不同含义。正文概述在AMQP 0-9-1协议中定义了basic.qos方法,通过该方法可以设置消费者在消费时通道(或...翻译 2019-08-24 16:54:41 · 2490 阅读 · 0 评论 -
RabbitMQ学习(二十):消费者优先级和优先级队列
说明在之前的博文中我对RabbitMQ的一些扩展特性进行了翻译学习,本篇博文我将继续翻译学习RabbitMQ的消费者优先级(Consumer Priorities)和优先级队列(Priority Queues)相关内容。正文消费者优先级(Consumer Priorities)消费者的优先级可以确保在不同优先级消费者都活跃消费消息时,高优先级的消费者会首先接收消息,只有在高优先级的消费者阻...翻译 2019-10-27 21:40:09 · 2114 阅读 · 0 评论