后端进阶扫盲——图文版
原创 2022-03-08 11:13:15
518阅读
解决MQ消息丢失问题的5种方案前言今天我们来聊聊一个让很多开发者头疼的话题——MQ消息丢失问题。有些小伙伴在工作中,一提到消息队列就觉得很简单,但真正遇到线上消息丢失时,排查起来却让人抓狂。其实,我在实际工作中,也遇到过MQ消息丢失的情况。今天这篇文章,专门跟大家一起聊聊这个话题,希望对你会有所帮助。一、消息丢失的三大环节在深入解决方案之前,我们先搞清楚消息在哪几个环节可能丢失:1. 生产者发送阶
转载 4天前
406阅读
同一个消费组内的消费者,如果订阅了相同的Topic,但是订阅的tag不相同,会出现消息丢失问题。原因:RocketMQ要求同一个消费组里的消费者必须订阅关系一致,若订阅关系不一致将会发生消息丢失。什么是订阅关系不一致?订阅关系一致是指同一个消费组下的所有消费者所订阅的Topic、Tag必须完全一致。如下图: 其中,消费组 1 中的消费组都订阅了 Topic1 中的 Tag1,消费组 2
转载 2024-01-10 22:30:04
56阅读
mq: rabbitmq, rocketmq, kafka
原创 2022-05-26 01:23:37
342阅读
前一篇博客我们介绍了生产者为什么发送消息的吞吐量这么大,其实就是因为,生产者提供了内存缓冲区,把消息打包再发送,从而提高了吞吐量。那么,消息发送过去,到了broker就算是成功了吗?会不会丢失呢?这篇博客,就向大家介绍一下 kafka
原创 2023-05-06 17:20:13
176阅读
面试官在面试候选人时,如果发现候选人的简历中写了在项目中使用了
原创 2022-11-12 00:26:35
172阅读
中间件技术的掌握程度,又能很好地区分候选人的能力水平。接下来,我们就从这个问题出发,探...
转载 2023-06-11 22:19:05
69阅读
消息队列是一种先进先出的数据结构面试题1.为什么使用消息队列?2.消息队列有什么优点和缺点?3.Kafka、ActiveMQ、RabbitMQ、RocketMQ 都有什么区别,以及适合哪些场景?面试官心理分析其实面试官主要是想看看:第一,你知不知道你们系统里为什么要用消息队列这个东西? 不少候选人,说自己项目里用了 Redis、MQ,但是其实他并不知道自己为什么要用这个东西。其实说白了,就是为了用
Redis是一种开源的内存数据库,常用于缓存和消息队列等场景。而消息队列(Message Queue,简称MQ)则是一种用于异步通信的机制,常用于解耦和异步处理等场景。在使用Redis作为MQ时,有时会遇到数据丢失的问题。本文将介绍Redis如何从MQ拉取消息丢失数据的原因,并提供相应的代码示例。 ## Redis从MQ拉取消息 Redis可以通过发布/订阅机制实现消息队列的功能。在Redi
原创 2023-12-13 13:24:53
73阅读
2020双11,RocketMQ发生了以下几个方面的变化:云原生化实践。完成运维层面的云原生化改造,实现 Kubernetes 化,实现降本提效,达到无人值守的自动化运维。性能优化。消息...
转载 2021-07-18 10:00:17
971阅读
作者:美得让人心动 面试官在面试候选人时,如果发现候选人的简历中写了在项目中使用了 MQ 技术(如 Kafka、RabbitMQ、RocketMQ),基本都会抛出一个问题:在使用 MQ 的时候,怎么确保消息 100% 不丢失?这个问题在实际工作中很常见,既能考察候选者对于 MQ 中间件技术的掌握程度,又能很好地区分候选人的能力水平。接下来,我们就从这个问题出发,探讨你应该掌握的基础知识和答题思路,
转载 2023-10-25 10:53:56
71阅读
# 项目方案:解决 Redis 消息丢失问题 ## 背景 Redis 是一个开源的内存数据存储系统,常用于构建高性能、可扩展的应用程序。然而,在使用 Redis 进行消息发布和订阅时,由于网络故障、系统崩溃等原因,可能会导致消息丢失的问题。为了解决这个问题,我们需要设计一个可靠的消息传递系统,确保消息能够被正确地传递和处理。 ## 方案概述 我们将使用 Redis 的发布-订阅功能来实现消息
原创 2023-07-27 06:11:59
350阅读
不要使用producer.send(msg),而要使用producer.send(msg,callback)。设置acks = all设置retires为一个较大的值设置unclean.leader.election.enable= false设置replication.factor >= 3设置min.insynv.replicas > 1确保replication.factor &
原创 2023-07-19 11:36:38
89阅读
在本篇博文中,我们将深入探讨“android MQ丢失”这一问题,提供系统的解决思路,涵盖从业务背景到故障复盘的各个方面。 ### 背景定位 在我们目前的项目中,Android 应用依赖于消息队列(MQ)来进行异步通信和数据处理。近年来,随着用户的不断增长,我们面临着消息丢失的问题,影响了用户的体验和系统的可靠性。 > 引用块 > 用户原始需求:我们希望在使用 App 时,所有数据的推送和消
原创 7月前
45阅读
前言 上篇文章,王子通过一个小案例和小伙伴们一起分析了一下消息是如何丢失的,但没有提出具体的解决方案。 我们已经知道发生消息丢失的原因大体上分为三个部分: 1.生产者发送消息MQ这一过程导致消息丢失 2.MQ自己发生故障导致消息丢失 3.消费者拿到消息后,由于操作不当导致消息丢失 接下来我们就针对
原创 2021-04-28 16:56:19
587阅读
1 面试题如何解决消息队列的延时以及过期失效问题?消息队列满了以后该怎么处理?有几百万消息持续积压几小时,说说怎么解决?2 考点分析你看这问法,其实本质针对的场景,都是说,可能你的消费端出了问题,不消费了,或者消费的极其极其慢。接着就坑爹了,可能你的消息队列集群的磁盘都快写满了,都没人消费,这个时候怎么办?或者是整个这就积压了几个小时,你这个时候怎么办?或者是你积压的时间太长了,导致比...
原创 2022-03-14 14:35:55
696阅读
1.引言RabbitMQ——Rabbit Message Queue的简写,但不能仅仅理解其为消息队列,消息代理更合适。RabbitMQ 是一个由 Erlang 语言开发的AMQP(高级消息队列协议)的开源实现,其内部结构如下:RabbitMQ作为一个消息代理,主要和消息打交道,负责接收并转发消息。RabbitMQ提供了可靠的消息机制、跟踪机制和灵活的消息路由,支持消息集群和分布式部署。适用于排队
浅谈 RabbitMQ(一)工作模型与 Exchange 类型 一、消息传递分析 RabbitMQ的具体结构图参考笔者上一篇文章,下面画个消息传递的简图 从上图可知,要确保一个消息正确的传递,需要在四个传递阶段都能正确传递: 确保消息成功由生产者发送到RabbitMQ服务器 确保消息被交换机路由到正 ...
转载 2021-08-16 13:40:00
96阅读
2评论
# MQ消费与Redis做幂等校验的实现 在现代微服务架构中,消息队列(MQ)作为系统各组件之间的沟通桥梁,扮演了非常重要的角色。然而,在消费消息时,如何确保消息的幂等性(即重复消费相同消息时,不会导致系统状态发生改变)显得尤为重要。为此,我们可以结合Redis来实现幂等校验,从而避免消息丢失或重复处理的问题。 ## 问题的提出 在消息消费的过程中,可能会出现网络异常或处理逻辑错误,导致消息
原创 8月前
85阅读
MQ怎么解决消息堆积的问题 网上普通回答 修复consumer的问题,确保其恢复消费速度,然后将现有consumer都停止 临时建立好原先10倍或者20倍的queue数量 然后写一个临时的分发数据的consumer程序,这个程序部署上去消费积压的数据,消费之后不做耗时的处理,直接均匀轮询写入临时建立
转载 2020-12-19 16:34:00
1221阅读
2评论
  • 1
  • 2
  • 3
  • 4
  • 5