RabbitMQ
文章平均质量分 90
本专栏介绍一些关于RabbitMQ的知识,包括RabbitMQ的安装、基本概念、发布确认、交换机、死信队列、延迟队列、RabbitMQ集群等;
JAVA开发区
热爱编程的一枚小青年
展开
-
RabbitMQ相关的其他知识点
惰性队列会尽可能的将消息存入磁盘中,而在消费者消费到相应的消息时才会被加载到内存中,它的一个重要的设计目标是能够支持更长的队列,即支持更多的消息存储。原创 2023-10-24 09:04:46 · 138 阅读 · 0 评论 -
RabbitMQ之发布确认高级
在生产环境中由于一些不明原因,导致 rabbitmq 重启,在 RabbitMQ 重启期间生产者消息投递失败,导致消息丢失,需要手动处理和恢复。于是,我们开始思考,如何才能进行 RabbitMQ 的消息可靠投递呢?特别是在这样比较极端的情况,RabbitMQ 集群不可用的时候,无法投递的消息该如何处理呢:应 用 [xxx] 在 [08-1516:36:04] 发 生 [ 错 误 日 志 异 常 ] , alertId=[xxx]。由。原创 2023-09-28 16:03:17 · 1121 阅读 · 0 评论 -
RabbitMQ之延迟队列
延时队列在需要延时处理的场景下非常有用,使用 RabbitMQ 来实现延时队列可以很好的利用RabbitMQ 的特性,如:消息可靠发送、消息可靠投递、死信队列来保障消息至少被消费一次以及未被正确处理的消息不会被丢弃。另外,通过 RabbitMQ 集群的特性,可以很好的解决单点故障问题,不会因为单个节点挂掉导致延时队列不可用或者消息丢失。当然,延时队列还有很多其它选择,比如利用 Java 的DelayQueue,利用 Redis 的zset,利用Quartz或者利用kafka。原创 2023-09-07 09:53:54 · 940 阅读 · 0 评论 -
RabbitMQ之死信队列
死信,顾名思义就是无法被消费的消息,字面意思可以这样理解,一般来说,producer将消息投递到 broker 或者直接到 queue 里了,consumer 从 queue 取消息进行消费,但某些时候由于特定的。:为了保证订单业务的消息数据不丢失,需要使用到 RabbitMQ 的死信队列机制,当消息消费发生异常时,将消息投入死信队列中。,这样的消息如果没有后续的处理,就变成了死信,有死信自然就有了死信队列。时间过去10秒,正常队列里面的消息由于没有被消费,消息进入死信队列。消息生产者代码同上生产者一致。原创 2023-07-20 18:23:51 · 886 阅读 · 0 评论 -
RabbitMQ之交换机
Fanout 这种类型非常简单。正如从名称中猜到的那样,它是将接受到的所有消息广播到它知道的所有队列中。系统中默认有些 exchange 类型我们的日志系统将所有消息广播给所有消费者,对此我们想做出一些改变,例如我们希望将日志消息写入磁盘的程序仅接受严重错误(errors),而不存储那些警告(warning)或者信息(info)日志消息避免浪费磁盘空间。原创 2023-07-14 18:48:13 · 2410 阅读 · 0 评论 -
RabbitMQ之发布确认
三种发布确认方式:单独发布消息、批量发布消息、异步处理原创 2023-07-05 19:01:12 · 780 阅读 · 0 评论 -
RabbitMQ之工作队列 ( Work Queues )
工作队列(又称任务队列)的主要思想是避免立即执行资源密集型任务,而不得不等待它完成。相反我们安排任务在之后执行。我们把任务封装为消息并将其发送到队列。在后台运行的工作进程将弹出任务并最终执行作业。当有多个工作线程时,这些工作线程将一起处理这些任务。原创 2023-05-09 17:55:47 · 1464 阅读 · 0 评论 -
RabbitMQ之HelloWorld
注:P使我们的生产者,C是我们的消费者。中间的框是一个队列-RabbitMQ代表使用者保留的消息缓冲区。我们将用Java编写两个程序。发送单个消息的生产者和接受消息并打印出来的消费者。原创 2023-05-09 11:36:19 · 133 阅读 · 0 评论 -
RibbitMQ之RabbitMQ的介绍与安装
RabbitMQ 是一个消息中间件:它接受并转发消息。你可以把它当做一个快递站点,当你要发送一个包 裹时,你把你的包裹放到快递站,快递员最终会把你的快递送到收件人那里,按照这种逻辑 RabbitMQ 是 一个快递站,一个快递员帮你传递快件。RabbitMQ 与快递站的主要区别在于,它不处理快件而是接收, 存储和转发消息数据。原创 2023-04-26 14:12:37 · 562 阅读 · 0 评论