rabbitMq
文章平均质量分 78
rabbitMq
zhifeng687
这个作者很懒,什么都没留下…
展开
-
基于死信队列实现RabbitMQ消息消费失败后的处理方案
死信队列的使用:处理失败的消息一般生产环境中,如果你有丰富的架构设计经验,都会在使用MQ的时候设计两个队列:一个是核心业务队列,一个是死信队列。核心业务队列,就是比如上面专门用来让订单系统发送订单消息的,然后另外一个死信队列就是用来处理异常情况的。之所以我们这篇文章抛出一个面试题,结果先长篇大论说一个生产实践案例和业务场景,就是因为面试被问到这个问题时,必须要结合你自己的业务实践经验来说。你需要先给面试官说有血有肉的业务系统场景,然后再结合这个场景回答他的问题,因为面试官想听的就是你转载 2022-03-29 01:12:45 · 1591 阅读 · 0 评论 -
RabbitMQ 消息确认机制、补偿机制、消息幂等性实践
1. 场景先看这么几个面试题:如何保证消息的可靠性投递?即如何确定消息是否发送成功? 如果失败如何处理(补偿机制)? 如何保证消息不被重复消费?或者说,如何保证消息消费时的幂等性?2.消息的可靠性投递消息确认消息确认包括主要生产者发送确认和消费者接收确认,因为发送消息的过程中我们是无法确认消息是否能路由等,一旦消息丢失我们就无法处理,所以需要确认消息,避免消息丢失。2.1 生产者确认我们知道生产者与消费者完全隔离的,不做任何配置的情况下,生产者是不知道消息是否真正到达...转载 2022-03-29 01:10:03 · 648 阅读 · 0 评论 -
RabbitMq和kafka在可靠性、吞吐量等的区别
kafka介绍kafka是apache开源的消息队列顶级项目之一,在大数据场景下使用较多,由linkedin开源,目前社区活跃,全球较多组织开始使用kafka来进行数据交换。rabbitmq介绍RabbitMQ是流行的开源消息队列系统,用erlang语言开发。RabbitMQ是AMQP(高级消息队列协议)的标准实现。kafka和rabbitmq全面对比分析实际场景选择在实际生产应用中,通常会使用kafka作为消息传输的数据管道,rabbitmq作为交易转载 2022-03-29 01:06:17 · 2002 阅读 · 0 评论 -
消息中间件选型分析:从 Kafka 与 RabbitMQ 的对比看全局
一、前言消息队列中间件(简称消息中间件)是指利用高效可靠的消息传递机制进行与平台无关的数据交流,并基于数据通信来进行分布式系统的集成。通过提供消息传递和消息排队模型,它可以在分布式环境下提供应用解耦、弹性伸缩、冗余存储、流量削峰、异步通信、数据同步等等功能,其作为分布式系统架构中的一个重要组件,有着举足轻重的地位。目前开源的消息中间件可谓是琳琅满目,能让大家耳熟能详的就有很多,比如 ActiveMQ、RabbitMQ、Kafka、RocketMQ、ZeroMQ 等。不管选择其中的哪一款,都会有用的不转载 2022-03-29 00:53:24 · 290 阅读 · 0 评论 -
RabbitMQ消息消费失败后的处理方案
Q:业务系统之间通过MQ进行交互,当消费者发生未知异常时,消息消费失败,如何处理才保证消息的消费的可靠性。 A: 从如下几点考虑 何时ack 无论消息成功还是失败,都会ack,消息不会堆积在MQ中 只有成功才ack,消息堆积在MQ中 消费日志 接收消息后先入库 入库失败,直接开始重试 入库成功,开始后续业务逻辑 ..转载 2022-03-29 00:36:18 · 5679 阅读 · 0 评论 -
rabbitMQ和rocketMQ的消息可靠性机制
在我们大多数场景中,MQ消息都要保证可靠性,消息可靠性应该是我们最关心的一个细节,没有之一;而各个MQ实现的可靠性保证都不同,同时实现机制也不同,只有知道各个MQ实现是如何保证消息可靠性的,才能在使用的过程中不丢消息;rabbitMQ对于rabbitMQ,消息可靠性是从以下几点来保证的:消息持久化;发布者确认;消费者确认;消息持久化对于rabbitMQ,默认情况下消息是不持久化的,这是为了性能考虑,但是这样会导致消息在服务器重启后丢失,这在我们大多数场景下都是不可接受的,所以,我们转载 2022-03-28 23:21:54 · 627 阅读 · 0 评论 -
RabbitMq实现消息高可靠性机制
1. 📖如何保证消息的可靠性?先来看看我们的万年老图,从图上我们大概可以看出来一个消息会经历四个节点,只有保证这四个节点的可靠性才能保证整个系统的可靠性。生产者发出后保证到达了MQ。 MQ收到消息保证分发到了消息对应的Exchange。 Exchange分发消息入队之后保证消息的持久性。 消费者收到消息之后保证消息的正确消费。经历了这四个保证,我们才能保证消息的可靠性,从而保证消息不会丢失。2. 🔍生产者发送消息到MQ失败我们的生产者发送消息之后可能由于网络闪断等各种原因导致我们转载 2022-03-28 23:14:13 · 277 阅读 · 0 评论 -
Spring-RabbitMQ-自动补偿机制
1. 自动补偿机制在RabbitMQ里,如果消费者在处理消息时,业务逻辑出现异常,默认会执行补偿机制(也就是消息重试机制)。如果业务逻辑出现异常,是不会消费消息的。基于上一篇博客的例子《消息中间件系列教程(13) -RabbitMQ-SpringBoot集成RabbitMQ》来演示一下。现在消费者处理消息的地方模拟一个异常:生产者发送消息给消费者,会发现控制台一直在打印错误日志,也就是说,消费者一直在重试消费(补偿):也可以在RabbitMQ控制台看到,消息时没有被消费的..转载 2022-03-28 23:04:00 · 684 阅读 · 0 评论