RabbitMQ
文章平均质量分 78
RabbitMQ从入门到精通
云烟成雨TD
一个追求有道有术的非典型程序员
展开
-
RabbitMQ系列【18】对象序列化机制
使用RabbitMQ原生API,发送消息时,发送的是二进制byte[]数据。使用方法发送Message对象,也是二进制byte[]数据。}在接收时,需要将二进制数据转为你想要的数据格式。在JAVA编程中都是基于对象操作,一般消息都是对象,比如订单、日志。所以提供了方法,可以直接发送对象,那么对象在网络传输,就涉及到了序列化机制。原创 2022-11-30 13:32:22 · 1769 阅读 · 0 评论 -
RabbitMQ系列【17】RabbitOperations接口详解
在上一篇,我们介绍了实现接口的所有方法,接下来学习下其实现的另外一个接口。是对AMQP协议的支持,完成了基本的发送、接收消息,而是对RabbitMQ的直接集成,提供了更细致的操作。原创 2022-11-30 08:45:00 · 650 阅读 · 0 评论 -
RabbitMQ系列【16】AmqpTemplate接口详解
是提供的一个RabbitMQ消息操作模板类,在之前我们使用它完成了简单的消息发送。主要提供了发送消息、接收消息以及其他附加功能,内部封装了RabbitMQ原生API,大大简化了使用RabbitMQ操作。主要实现了和。原创 2022-11-30 08:30:00 · 2972 阅读 · 1 评论 -
RabbitMQ系列【15】AmqpAdmin使用详解
在之前,我们都是通过注入Bean的方式去声明交换机、队列,应用启动时去自动创建。如果需要动态创建,比如通过接口、或者业务代码自己去操作,这个使用就需要使用RabbitMQ提供的操作接口。如果是基于,则可以直接使用其提供的AmqpAdmin,其对RabbitMQ的原生接口进行了二次封装,使用起来十分方便。AmqpAdmin接口,只有一个实现类@Nullable@Nullable@Nullable@Nullable} }可以看到接口中声明了很多交换机、队列的操作方法。原创 2022-11-25 11:37:18 · 1960 阅读 · 0 评论 -
RabbitMQ系列【14】备份交换机
在之前,我们分析了消息可靠性之发布确认、退回机制。当消息到达交换机后,但是没有找到匹配的队列时,退回模式(return)将消息回退给生产者。使用发送消息,实际调用的还是底层RabbitMQ的Channel完成,例如退回模式(return)开启时,调用方法,并设置了一个重要参数mandatory为true。mandatory为true时,如果交换机根据自身类型和消息路由键无法找到一个符合条件的队列时,那么会调用return方法将消息返回给生产者。当mandatory设置为false时,出现上述情形。原创 2022-11-24 14:16:45 · 604 阅读 · 0 评论 -
RabbitMQ系列【13】优先级队列
RabbitMQ将消息写入队列中都是按顺序写的,消费时也是按顺序进行消费,队列中的消息是先进先出(FIFO).。首先测试一下没有优先级的效果。先注释掉所有的消费者,不然发一个就消费一个,看不出优先级的效果,只有消息堆积在一起时,才能看到效果。先发送10条消息:发送完成后,再开启消费者进行消费,没有设置优先级,那么先到达队列的消息先消费,收到的消息会从按照0-9的顺序消费。可以看到其时按照投递顺序消费,先进先出:在一些场景中我们需要将某些消息优先处理,也就是设置优先级,优先级高的消息优先被消费。原创 2022-11-22 08:00:00 · 1505 阅读 · 1 评论 -
RabbitMQ系列【12】惰性队列
默认情况下,当生产者将消息发送到RabbitMQ的时候,队列中的消息会尽可能的存储在内存之中,这样可以更加快速的将消息发送给消费者。即使是持久化的消息,在被写入磁盘的同时也会在内存中驻留一份备份。当RabbitMQ需要释放内存的时候,会将内存中的消息换页至磁盘中,这个操作会耗费较长的时间,也会阻塞队列的操作,进而无法接收新的消息。虽然RabbitMQ的开发者们一直在升级相关的算法,但是效果始终不太理想,尤其是在消息量特别大的时候。RabbitMQ从3.6.0版本开始引入了惰性队列的概念。惰性队列。原创 2022-11-21 18:45:00 · 627 阅读 · 0 评论 -
RabbitMQ系列【11】延迟队列
延迟队列:即消息进入队列后不会立即被消费,只有到达指定时间后,才会被消费。用户下单后,30分钟未支付,取消订单,回滚库存。本文介绍了三种方式实现,前两种存在一定的局限性。原创 2022-11-20 22:44:00 · 1066 阅读 · 0 评论 -
RabbitMQ系列【10】死信队列
由于某些特定的原因导致队列中的某些消息无法被消费,这样的消息如果没有后续的处理,就变成了`死信`。原创 2022-11-18 16:42:14 · 1319 阅读 · 0 评论 -
RabbitMQ系列【9】过期时间
有道无术,术尚可求,有术无道,止于术。原创 2022-11-15 20:55:16 · 1219 阅读 · 0 评论 -
RabbitMQ系列【8】消息可靠性之ACK机制
在之前分析了对于生产者来说,可以使用消息发布确认及退回机制,保证消息被成功发送到MQ中。但对于消费者来说,消息传递过来,可能会丢失,也有可能接收到消息,但还未处理完,发生宕机或者异常,导致消息没有被成功消费。为了保证消息在消费过程中的可靠性,RabbitMQ引入消息确认机制(ACK(Acknowledge)),消费者在接收到消息并且处理该消息之后,告诉RabbitMQ它已经处理,RabbitMQ再讲该消息删除。自动确认:当消息一旦被消费者接收到,则自动确认收到,并将相应消息从RabbitMQ。原创 2022-11-14 16:16:59 · 2128 阅读 · 0 评论 -
RabbitMQ系列【7】消息可靠性之发布确认、退回机制
发布=》交换机=》队列=》消费。如下图所示:消息发送了,但未正常到达交换机到达了交换机,但没有找到匹配的队列,消息丢失消息已投递,但未被消费者成功接收到消费者消费时,消息处理异常为了解决以上种种问题,因此发布者和消费者都需要一种用于传递和处理确认的机制。RabbitMQ提供了各种机制,首先是消息发布可靠性机制。消息发布可靠性机制是指消息发送方杜绝任何发送消息丢失或者投递失败场景,确保消息被正常投递到队列中,RabbitMQ提供了两种模式。确认模式(confirm)退回模式(return)原创 2022-11-14 13:38:18 · 1529 阅读 · 1 评论 -
RabbitMQ系列【6】消息可靠性之持久化
在RabbitMQ服务端,意外退出或由于某种原因崩溃时,会忽视队列和消息。确保消息不会丢失需要将交换机、队列、消息都标记为持久化。原创 2022-11-13 22:43:28 · 874 阅读 · 0 评论 -
RabbitMQ系列【5】Spring Boot 整合RabbitMQ
为RabbitMQ也提供了自动配置和启动器。中文文档地址。原创 2022-11-13 21:21:50 · 1183 阅读 · 1 评论 -
RabbitMQ系列【4】六大工作模式
工作模式指的是消息发送及接受的策略。RabbitMQ。原创 2022-11-13 20:35:30 · 963 阅读 · 0 评论 -
RabbitMQ系列【3】安装RabbitMQ
有道无术,术尚可求,有术无道,止于术。原创 2022-11-12 23:01:25 · 1296 阅读 · 0 评论 -
RabbitMQ系列【2】核心概念
有道无术,术尚可求,有术无道,止于术。原创 2022-11-12 09:16:58 · 865 阅读 · 0 评论 -
RabbitMQ系列【1】概述
MQ是消息队列的首字母缩写。是指把要传输的数据(消息)放在队列中,用队列机制来实现消息传递,生产者产生消息并把消息放入队列,然后由消费者去处理。消费者可以到指定队列拉取消息,或者订阅相应的队列,由MQ服务端给其推送消息。一般用来解决应用解耦,异步消息,流量削峰等问题,实现高性能,高可用,可伸缩和最终一致性架构。原创 2022-11-11 23:06:21 · 914 阅读 · 0 评论