消息队列
文章平均质量分 90
君哥聊技术
这个作者很懒,什么都没留下…
展开
-
阿里二面:要保证消息不丢失,又不重复,消息队列怎么选型?
消息不丢失、不重复是消息队列的基本要求,但这个基本要求还是很难满足的。消息丢失这个要求,主流消息队列通过消息重试和消息持久化的方式可以满足。但消息重试也同时带来了消息重复的可能性,主流消息队列在解决重复消息的问题上并没有现成的方案,对不允许重复消费的场景,需要开发人员在消费端做幂等处理。原创 2024-01-19 22:18:50 · 1051 阅读 · 0 评论 -
消息队列技术选型:这 7 种消息场景一定要考虑!
RabbitMQ Broker 实现了轨迹消息的功能,打开 Trace 开关,就可以把轨迹消息发送到 amq.rabbitmq.trace 这个 exchange,但是要考虑轨迹消息会不会给 Broker 造成 压力进而导致消息积压。生产者把消费发送到 Broker 后,Broker 首先把消息保存到 SCHEDULE_TOPIC_XXXX 这个 Topic,然后调度任务会判断是否到期,如果到期,会把消息从 SCHEDULE_TOPIC_XXXX 取出投递到原始的 queue,这样消费者就可以消费到了。原创 2023-10-06 16:32:08 · 329 阅读 · 0 评论 -
RocketMQ 5.0 时代,6 张图带你理解 Proxy!
RocketMQ 5.0 把客户端的部分功能下沉到 Proxy,Proxy 承接了之前 客户端的计算能力,客户端变得更加轻量级。原创 2023-04-22 16:14:59 · 1028 阅读 · 0 评论 -
老弟问我,RocketMQ 中的 ProcessQueue 怎么理解?
ProcessQueue 是 MessageQueue 的消费快照,可以协助消费者进行消息拉取、消息消费、更新偏移量、限流。原创 2023-03-29 23:19:42 · 646 阅读 · 0 评论 -
阿里二面:RocketMQ 消费者拉取一批消息,其中部分消费失败了,偏移量怎样更新?
如果处理消息的逻辑是并行的,处理消息失败后给 ackIndex 赋值是没有意义的,因为可能有多条消息失败,给 ackIndex 变量赋值并不准确。最近有读者参加面试时被问了一个问题,如果消费者拉取了一批消息,比如 100 条,第 100 条消息消费成功了,但是第 50 条消费失败,偏移量会怎样更新?回到开头的问题,如果一批消息按照顺序消费,是不可能出现第 100 条消息消费成功了,但第 50 条消费失败的情况,因为第 50 条消息失败的时候,应该退出循环,不再继续进行消费。如果处理消息的逻辑是串行的。原创 2023-02-03 22:59:36 · 923 阅读 · 0 评论 -
40 个定时任务,带你理解 RocketMQ 设计精髓!
RocktMQ定时任务。原创 2023-01-18 21:00:19 · 2042 阅读 · 1 评论 -
面试官:使用 RocketMQ 怎么进行灰度发布?
本文介绍了 RocketMQ 灰度消息的使用方法。原创 2022-12-10 12:36:10 · 1432 阅读 · 0 评论 -
弥补延时消息的不足,RocketMQ 基于时间轮算法实现了定时消息!
RocketMQ 新版本引入了定时消息,弥补了延时消息的不足。原创 2022-11-12 21:43:49 · 2430 阅读 · 2 评论 -
RocketMQ 5.0 大手笔,拥抱云原生,支持流处理,高可用架构升级!
RocketMQ 5.0 是一个比较大的版本,这里介绍 RocketMQ 5.0 新特性。原创 2022-10-15 19:50:06 · 2948 阅读 · 4 评论 -
10 张图告诉你 RocketMQ 是怎样保存消息的
10张图带你理解RocketMQ消息存储机制原创 2022-09-27 19:35:17 · 399 阅读 · 0 评论 -
阿里二面:RocketMQ 集群 Broker 挂了,会造成什么影响?
RocketMQ集群如果一个Broker挂了,会造成什么影响?原创 2022-09-05 21:34:08 · 3047 阅读 · 5 评论 -
手把手教你从 0 到 1 搭建一套 RocketMQ 集群
这篇文章主要讲述了 RocketMQ 集群的搭建,希望能对大家理解 RocketMQ 有所帮助。原创 2022-08-27 16:41:22 · 541 阅读 · 0 评论 -
5 张图告诉你 RocketMQ 为什么不使用 Zookeeper 做注册中心
对于注册中心,RocketMQ 集群需要保存的元数据非常少,完全没有必要引入 Zookeeper 这种重量级的注册中心。原创 2022-08-06 18:53:50 · 554 阅读 · 0 评论 -
5 张图带你彻底理解 RocketMQ 轨迹消息
本文主要讲解了RocketMQ的轨迹消息实现机制。原创 2022-07-19 21:52:03 · 1363 阅读 · 0 评论 -
一文带你理解 RocketMQ 广播模式实现机制
本文主要讲解了RocketMQ广播消息的实现机制原创 2022-07-19 21:49:51 · 1301 阅读 · 0 评论 -
5 张图带你理解 RocketMQ 延时消息机制
RocketMQ延时消息是怎么实现的原创 2022-07-01 21:55:29 · 491 阅读 · 0 评论 -
5张图带你理解 RocketMQ 顺序消息实现机制
在有些场景下,使用 MQ 需要保证消息的顺序性,比如在电商系统中,用户提交订单、支付订单、订单出库这 3 个消息应该保证顺序性原创 2022-07-01 21:03:34 · 2699 阅读 · 0 评论 -
面试官:RocketMQ 的推模式和拉模式有什么区别?
大家好,我是君哥。RocketMQ 消息消费有两种模式,PULL 和 PUSH,今天我们来看一下这两种模式有什么区别。PUSH 模式首先看一段 RocketMQ 推模式的一个官方示例:publicstaticvoidmain(String[]args)throwsInterruptedException,MQClientException{Tracertracer=initTracer();DefaultMQPushConsumerconsum...原创 2022-05-26 09:47:29 · 2937 阅读 · 1 评论 -
这 6 个场景下 RocketMQ 会找不到 Broker
大家好,我是君哥。今天来分享一个最近生产环境遇到的一个 RocketMQ 异常:首先,我们回顾一下 RockemtMQ 的架构:Broker 的主从节点都会注册到 Name Server 集群,Name Server 集群保存了 Broker 相关信息。RocketMQ client 会在本地维护一份 topic 和 Broker 地址的映射关系,放在 MQClientInstance#brokerAddrTable。发送消息RocketMQ client 在发送消息时,会根据原创 2022-05-13 22:15:44 · 1393 阅读 · 0 评论 -
5 张图带你理解 RocketMQ 消费者启动过程
大家好,我是君哥。今天来分享 RocketMQ 中一个关键的知识点,消费者的启动过程。多数消息队列中,消费者和 Broker 通信的方式有两种,PUSH 模式和 PULL 模式: PUSH 模式:Broker 主动把消息推送给订阅的消费者; PULL模式:消费者主动从 Broker 拉取消息。 注意,RocketMQ 并没有真正实现 PUSH 模式, RocketMQ 中的 PUSH 模式,本质上也是 PULL 模式,只是消费端封装了轮询过程,相当于开启一个定时线程不停地从原创 2022-05-13 22:09:25 · 885 阅读 · 0 评论 -
9 个维度告诉你怎么做能确保 RocketMQ 不丢失消息
大家好,我是君哥。引入消息队列可以方便地实现系统解耦、削峰填谷等作用。但是消息队列使用不当,可能会引起消息丢失,在一些消息敏感的业务场景下,这是不允许的。今天我们来聊一聊 RocketMQ 怎么做能确保消息不丢失。1 RocketMQ 简介RocketMQ 是阿里巴巴开源的分布式消息中间件,整体架构如下图:RocketMQ 主要包括 Producer、Consumer 和 Broker,同时 Name Server 进行集群注册管理和保存元数据。2 消息不丢失要想保证消息不丢失,原创 2022-02-08 22:51:31 · 2595 阅读 · 0 评论 -
SpringBoot整合分布式消息平台Pulsar
大家好,我是君哥。作为优秀的消息流平台,Pulsar 的使用越来越多,这篇文章讲解 Pulsar 的 Java 客户端。部署 PulsarPulsar 的部署方式主要有 3 种,本地安装二进制文件、docker 部署、在 Kubernetes 上部署。本文采用 docker 部署一个单节点的 Pulsar 集群。实验环境是 2 核 CPU 和 4G 内存。部署命令如下:dockerrun-it-p6650:6650-p8080:8080--mountsource=...原创 2022-01-15 14:05:23 · 883 阅读 · 0 评论 -
面试官:RocketMQ同一个消费组内的消费者订阅了不同tag,会有问题吗?
面试官:同一个消费组内的消费者,如果订阅了相同的 topic,但是订阅的 tag 不一样,会有什么问题吗?我:会出现丢消息的情况。面试官:能详细说一说吗?我:RocketMQ 要求同一个消费组内的消费者必须订阅关系一致,如果订阅关系不一致,会出现消息丢失的问题。面试官:什么是订阅关系一致呢?我:订阅关系一致是指同一个消费者组下所有消费者所订阅的 Topic、Tag 必须完全一致。如下图所示:其中,消费组 1 中的消费组都订阅了 Topic1 中的 Tag1,消费组 2 中的消费组原创 2021-12-18 17:41:23 · 8675 阅读 · 3 评论 -
8张图带你彻底理解Pulsar的跨地域复制
跨地域复制是 Apache Pulsar 企业级特性的重要组成部分,它保证了系统的高可用,在操作和管理上也非常便捷,今天用 5 张图来带大家学习这个功能。1 多机房部署Pulsar 多机房部署如下图:上面的 Pulsar 架构中,Pulsar 3 个集群分别部署在北京、上海、贵阳 3 个机房,每个机房一套集群,每个集群中都有一个 Topic1,并且对应着订阅是 Subscription1。但是 3 个集群之间并没有数据同步。如果某一个机房发生故障,那这个机房的存量消息将不能被消费掉。原创 2021-12-06 22:10:56 · 2105 阅读 · 0 评论 -
7张图带你轻松入门RocketMQ
非常好的学习RocketMQ的文章原创 2021-11-30 23:26:43 · 3419 阅读 · 0 评论 -
【12图】你管这破玩意叫Pulsar
这两年pulsar发展比较快,有好多大公司引入了pulsar,相关的资料和课程也多了,今天一起来了解一下pulsar这款中间件。下图是几款消息中间件的历史:2012年pulsar在Yahoo内部开发,2016年开源并捐献给Apache,2018成为Apache顶级项目。1架构pulsar的架构图如下:总结一下,pulsar有下面的几个特性。1.1 计算存储分离pulsar采用计算和存储相分离的架构,Broker集群负责把producer发出的消息发送给consumer,同原创 2021-06-24 18:59:02 · 538 阅读 · 3 评论