- 博客(82)
- 资源 (1)
- 收藏
- 关注
原创 深入解析 RocketMQ 中的 BrokerOuterAPI 组件
BrokerOuterAPI 并非一个孤立的模块,而是一组封装了 Broker 对外提供服务接口的集合。它涵盖了与客户端(Producer、Consumer)、其他 Broker 以及 NameServer 等进行通信和交互的关键逻辑。通过这些接口,Broker 能够接收并处理各种请求,实现消息的发送、消费、存储管理以及集群状态同步等核心功能。
2025-04-05 22:57:00
920
原创 深入探究 RocketMQ 中的 Broker2Client 组件
Broker2Client 并非一个独立的物理组件,而是一系列功能和逻辑的集合,它涵盖了从 Broker 端到 Client 端通信的各个方面,主要讲一些消息(生产者事务,通知消费者Ids的变化,消费者复位偏移量 查询消费者状态)进行推送到Client上。Broker2Client 组件的存在,使得 RocketMQ 的 Broker 与 Client 之间的交互变得有序、高效。在大规模分布式系统中,众多的客户端需要与 Broker 进行频繁的通信。
2025-04-05 13:51:09
989
原创 RocketMQ 中的 ProducerManager 组件剖析
在分布式系统的消息传递领域,RocketMQ 以其高性能、高可用性和强大的扩展性脱颖而出。ProducerManager 作为 RocketMQ 中的一个关键组件,在消息生产环节发挥着至关重要的作用。它负责管理消息生产者(Producer)的生命周期、配置和操作,为系统的稳定运行和高效消息传递提供了坚实的基础。
2025-04-04 19:20:54
218
原创 RocketMQ 核心组件:consumerIdsChangeListener、consumerManager 和 consumerFilterManager 深度解析
是一个监听器接口,其主要功能是监听消费组内消费者 ID 的变化。在 RocketMQ 的分布式环境中,消费者的加入和退出是动态的过程。例如,当有新的消费者实例启动并加入某个消费组,或者已有消费者实例因为故障、维护等原因退出消费组时,能够及时感知到这些变化,并触发相应的处理逻辑。是 RocketMQ 中负责管理消费组和消费者信息的核心组件。它维护着一个消费组的元数据信息,包括每个消费组下的消费者 ID 列表、消费者的状态、消费进度等。通过,可以方便地对消费组和消费者进行增删改查操作,确保消费组的管理有序进行。
2025-03-31 22:41:38
508
原创 深入解析 RocketMQ 中的 PullMessageProcessor、PullRequestHoldService 和 NotifyMessageArrivingListener
在 RocketMQ 的消息消费机制中,PullMessageProcessor、PullRequestHoldService 和 NotifyMessageArrivingListener 这三个类扮演着关键角色,它们协同工作,确保消费者能够高效、准确地拉取并处理消息。本文将深入剖析这三个类的功能和交互方式。
2025-03-27 16:52:31
900
原创 RocketMQ 中的 SlaveSynchronize 技术剖析
RocketMQ 采用主从架构来提高系统的可用性和可靠性。主节点(Master)负责处理消息的写入和读取请求,而从节点(Slave)则作为主节点的备份,实时同步主节点的数据。当主节点出现故障时,从节点可以接管部分或全部的服务,保证系统的正常运行。在主从架构中,数据同步是一个核心问题。就是 RocketMQ 中负责从主节点同步元数据的组件,它确保从节点能够及时获取主节点的最新配置信息,如主题配置、订阅组配置等。的主要功能是从主节点同步元数据。
2025-03-26 13:37:58
367
原创 深入剖析 RocketMQ Broker 中的 RebalanceLockManager 组件
RebalanceLockManager 作为 RocketMQ Broker 中的重要组件,在负载均衡过程中起着关键作用。它通过对消息队列的锁管理,保证了消费的一致性、支持动态负载均衡并防止死锁的发生。在实际应用中,RebalanceLockManager 能够有效提高系统的稳定性和可靠性,确保消息的准确消费。深入理解 RebalanceLockManager 的工作原理和作用,有助于开发者更好地使用 RocketMQ 构建高效、稳定的分布式消息系统。
2025-03-25 11:21:45
689
原创 RocketMQ 中 TopicManager 的属性与方法深度剖析
是 RocketMQ 中用于管理主题相关信息的核心类,它维护着系统中所有主题的配置信息,包括主题的名称、权限、队列数量等。通过,可以实现主题的创建、删除、查询等操作,为消息的生产和消费提供基础支持。在 RocketMQ 中扮演着至关重要的角色,通过其丰富的属性和方法,实现了对主题的高效管理。开发者在使用 RocketMQ 时,深入理解的工作原理和使用方法,能够更好地利用 RocketMQ 的功能,构建出稳定、高效的消息系统。无论是主题的创建、查询还是删除,都提供了相应的接口,为开发者提供了便利。
2025-03-24 15:01:39
382
原创 深入剖析 RocketMQ 的 ConsumerOffsetManager
是 RocketMQ Broker 端的一个重要组件,主要负责管理消费者的消费偏移量(offset)。消费偏移量是指消费者在消息队列中已经消费到的位置,通过管理这个偏移量,可以确保消费者在重启或故障恢复后能够从正确的位置继续消费消息,避免消息的重复消费或遗漏。是 RocketMQ 中一个非常重要的组件,它通过管理消费者的消费偏移量,确保了消息的准确消费和系统的可靠性。了解的主要属性和方法,有助于开发者更好地理解 RocketMQ 的工作原理,优化消息消费的性能,以及处理各种异常情况。在实际应用中,合理配置。
2025-03-21 16:28:52
907
原创 深入探究 RocketMQ 中 NettyRemotingServer 的核心 Handler
主要负责处理客户端与服务器之间的握手过程。这个HandshakeHandler主要是进行SSL的链接创建。HandshakeHandler初始化的方法,在org.apache.rocketmq.remoting.netty.NettyRemotingServer#prepareSharableHandlers的方法中,代码如下://创建握手用的handler//netty的解码器//netty 连接管理的handler//netty 服务器消息处理的组件。
2025-03-12 13:44:08
1012
原创 探秘 Netty 通信中的 SslHandler 类:保障网络通信安全的基石
SslHandler是 Netty 中用于处理 SSL/TLS 协议的处理器,它是的一种实现。在 Netty 的中,SslHandler通常处于最前端,负责对进出Channel的数据进行加密和解密操作。通过使用SslHandler,可以确保在网络上传输的数据以加密形式存在,从而保护数据的机密性和完整性。SslHandler类是 Netty 中实现 SSL/TLS 加密通信的关键组件,它为开发者提供了便捷的方式来保障网络通信的安全。通过正确配置和使用SslHandler,可以轻松构建安全可靠的网络应用。
2025-03-09 22:38:06
973
原创 RocketMQ 中的 NettyRemotingAbstract 类
NettyRemotingAbstract 类主要负责封装与 Netty 相关的网络通信操作,将复杂的网络编程细节抽象化,使得 RocketMQ 的 Remoting 模块能够专注于消息协议处理和业务逻辑实现。它管理着 Netty 的 Channel、EventLoopGroup 等核心组件,提供了统一的消息发送、接收和处理接口,同时处理网络连接的建立、断开以及异常情况。
2025-03-05 15:36:13
850
原创 Netty 关键通信组件深度解析
Netty 中的 RemotingServer 和 BrokerHousekeepingService 作为重要的网络通信组件,各自承担着关键的职责,共同为分布式系统的网络通信提供了强大的支持。通过深入理解它们的工作原理和协同机制,开发者能够更好地利用 Netty 框架构建高性能、高可靠的分布式系统。随着分布式技术的不断发展,网络通信面临着越来越多的挑战,如更高的并发量、更复杂的网络拓扑结构等。
2025-03-02 17:39:40
920
原创 RocketMq中RouteInfoManger组件的源码分析
是 RocketMQ 中NameServer的核心组件之一,主要负责管理和维护整个 RocketMQ 集群的路由元数据信息。里面包含一些非常核心的功能:存储和管理 Broker 信息(broker的注册,broker心跳的维护);维护 Topic 的路由信息(topic的创建和更新,topic路由信息的查询);管理队列信息,管理集群信息等。
2025-02-16 17:37:11
262
原创 RocketMq之Broker注册流程详解
前面我也是写过一些关于broker注册到NameServer里的代码分析,但是总感觉写的比较简单,今天这篇的话,算是重新梳理一篇broker注册到NameServer中的代码,感兴趣的可以看下我前面写的几篇博客:1.NameServer的主要数据结构:RocketMQ中的NameServer主要数据结构-优快云博客2.Broker发送注册请求的逻辑:Broker注册到NameServer_ailed to register current broker to name server. t-优快云博客3.
2025-02-09 18:17:17
427
原创 RocketMQ中的NameServer主要数据结构
NameServer是RocketMQ中的一个比较重要的组件,我们这篇博客针对NameSever中包含的组件进行分析,分析一下NameServer中包含的组件以及组件的作用。以前我有一篇博客中,在这篇博客中就简单看了下NameSever中会有两个组件:NamesrvConfig和NettyServerConfig。在这里就不在进行介绍。
2025-02-02 23:14:06
470
原创 RocketMQ中的一些细节
此文章是在儒猿课程中的学习笔记,感兴趣的想看原来的课程可以去咨询儒猿课堂《从0开始带你成为RocketMQ高手》,我本人觉得这个作者还是不错,都是从场景来进行分析,感觉还是挺适合我这种小白的。这块主要都是我自己的学习笔记。想看原版的,还是去儒猿课堂。
2025-01-19 22:29:52
709
原创 Broker收到消息之后如何存储
此文章是在儒猿课程中的学习笔记,感兴趣的想看原来的课程可以去咨询儒猿课堂《从0开始带你成为RocketMQ高手》,我本人觉得这个作者还是不错,都是从场景来进行分析,感觉还是挺适合我这种小白的。这块主要都是我自己的学习笔记。想看原版的,还是去儒猿课堂。
2025-01-15 22:58:29
410
原创 RokcetMQ中Producer的秘密
此文章是在儒猿课程中的学习笔记,感兴趣的想看原来的课程可以去咨询儒猿课堂《从0开始带你成为RocketMQ高手》,我本人觉得这个作者还是不错,都是从场景来进行分析,感觉还是挺适合我这种小白的。这块主要都是我自己的学习笔记。想看原版的,还是去儒猿课堂。
2025-01-13 13:42:46
605
原创 Broker如何进行定时心跳发送和故障感知
此文章是在儒猿课程中的学习笔记,感兴趣的想看原来的课程可以去咨询儒猿课堂《从0开始带你成为RocketMQ高手》,我本人觉得这个作者还是不错,都是从场景来进行分析,感觉还是挺适合我这种小白的。这块主要都是我自己的学习笔记。想看原版的,还是去儒猿课堂。这篇文章紧挨着上一篇文章。
2025-01-12 20:02:36
895
原创 NameServer接收Broker的注册请求处理
此文章是在儒猿课程中的学习笔记,感兴趣的想看原来的课程可以去咨询儒猿课堂《从0开始带你成为RocketMQ高手》,我本人觉得这个作者还是不错,都是从场景来进行分析,感觉还是挺适合我这种小白的。这块主要都是我自己的学习笔记。想看原版的,还是去儒猿课堂。这篇文章紧挨着上一篇文章Broker注册到NameServer-优快云博客NameSever进行初始化的时候就会进行初始化Netty服务器,并且进行注册请求处理器,代码位置:org.apache.rocketmq.namesrv.NamesrvControll
2025-01-08 19:51:14
325
原创 Broker注册到NameServer
此文章是在儒猿课程中的学习笔记,感兴趣的想看原来的课程可以去咨询儒猿课堂《从0开始带你成为RocketMQ高手》,我本人觉得这个作者还是不错,都是从场景来进行分析,感觉还是挺适合我这种小白的。这块主要都是我自己的学习笔记。想看原版的,还是去儒猿课堂。这篇文章紧挨着上一篇文章。
2025-01-08 10:16:24
636
原创 nacos学习笔记(一)
何为nacos,nacos是一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。可以说集注册中心,配置中心,服务管理于一起的平台。注册中心:相当于我们可以把服务注册到注册中心上,我们以后可以通过服务名就可以进行调用了,而不用使用远程服务地址进行调用了;配置中心:就是我们在代码开发的时候,都有一些共同的配置文件,这些配置文件都放到配置中心进行统一管理;服务管理平台:就是提供一些简单的页面可以让我们来进行管理这些服务和配置信息。nacos的一些关键的特性:1.服务发现和服务健康监测。
2025-01-07 18:28:46
324
原创 rocketMq源码分析之Broker启动
此文章是在儒猿课程中的学习笔记,感兴趣的想看原来的课程可以去咨询儒猿课堂《从0开始带你成为RocketMQ高手》,我本人觉得这个作者还是不错,都是从场景来进行分析,感觉还是挺适合我这种小白的。这块主要都是我自己的学习笔记。想看原版的,还是去儒猿课堂。这篇文章紧挨着上一篇文章。
2025-01-07 11:10:29
818
原创 rocketMq源码分析之搭建本地环境
此文章是在儒猿课程中的学习笔记,感兴趣的想看原来的课程可以去咨询儒猿课堂《从0开始带你成为RocketMQ高手》,我本人觉得这个作者还是不错,都是从场景来进行分析,感觉还是挺适合我这种小白的。这块主要都是我自己的学习笔记。想看原版的,还是去儒猿课堂。
2025-01-06 11:15:33
173
原创 RocketMQ场景使用
会出现消息丢失的情况,可能出现的原因:在发送的过程中,出现了网络抖动,导致了消息没有发送的MQ的集群上;答案还是有可能会丢失的,假如我们的消费者拿到了消息,此时还没有进行消费,此时系统会有自动提交offset的能力,自动提交了offset,同时咱们的消息者宕机了,那么再次重启之后,这条消息就会出现丢失的情况。答案也是可能的,举个例子,我们发送消息到MQ集群上,此时消息还是在os cache中,还是没有写入到磁盘,此时Broker机器发生了宕机,那么消息就会出现丢失的情况。
2025-01-04 23:50:03
675
原创 RocketMQ原理简述(二)
topic的创建的时候需要进行指定MessageQueue的数量,那么topic,messageQueue,broker之间的关系是什么呢,假如你有一个topic,这个topic里有4个messageQueue,topic里有100条数据,那么到每个messageQueue里就会有25条数据,每个messageQueue里的数据的数量也不是固定,是根据消息写入MessageQueue时候的策略定的。生产者拉取到这些信息,就会按照MessageQueue的写入策略将对应的数据写入的到应的Broker上。
2025-01-04 14:44:13
911
原创 rocketmq场景的实践——前言
本篇文章是通过儒猿课堂中的一篇关于《从 0 开始带你成为RocketMQ高手》的课程中进行学习的,这篇文章《从 0 开始带你成为RocketMQ高手》是根据一些场景来进行触发的,本人觉得比较不错,如果大家想看原文的话,可以进行跳转到儒猿课堂中进行观看,我这里只是写一些我在观看完这个课程之后自己的收获,我这里不可能有那么详细的介绍。我这里只是自己的见解。
2025-01-03 11:33:42
169
原创 java并发面试复习
e.synchronized在发生异常的时候,会主动释放线程占有的锁,因此不会导致死锁的现象发生,Lock在发生异常的时候,如果没有主动通过unLock方法释放,则很可能造成死锁的现象,因此在使用的时候需要在finally中进行释放锁。d.底层实现不一样,synchronized是同步阻塞的,使用的是悲观并发策略,lock是同步非阻塞的,采用的乐观并发策略。g.Lock可以读写锁的实现,可以提高线程的工作效率,但synchronized是不能实现的。b.都是可重入锁,同一线程可以多次获得同一个锁。
2024-12-01 21:47:29
322
原创 java面试复习
重写equals 可以让我们定义判断两个对象是否相同的条件,当equals返回为true,我们在逻辑上可以认为是同一个对象,但是查看hashcode,发现hashcode不同,和equals方法的返回结果违背。== 两端是基本数据类型 就是判断值是否相同,equals在重写之后,判断两个对象的属性值是否相同,equals不重写,其实就是 ==== 是运算符,equals是来自于Object类定义的一个方法,== 可以用于基本数据类型和引用类型,
2024-11-28 21:42:31
372
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人