![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
RocketMQ
文章平均质量分 90
RocketMQ
星光之子0317
这个作者很懒,什么都没留下…
展开
-
RocketMQ-Broker(六)-关机恢复机制
关机恢复机制概述Broker关机恢复流程概述Broker关机恢复是指恢复CommitLog、Consume Queue、Index File等数据文件Broker关机分为 正常调用命令关机 和 异常被迫进程终止关机 两种情况恢复过程的设计目标 是使 正常停止的进程 实现 零数据丢失,异常停止的进程 实现 最少量的数据丢失与关机恢复相关的主要文件有两个:abort和checkpointabort是一个空文件,标记当前Broker是否正常关机,Broker进程正常启动的时候,创建该文件。Broker原创 2021-12-08 23:35:03 · 724 阅读 · 0 评论 -
RocketMQ-Broker(五)-主从同步机制
Broker主从同步机制主从同步概述主从同步流程相关名词配置数据同步流程CommitLog数据同步流程异步复制同步复制主从同步概述Master主要用于处理生产者、消费者的请求和存储数据Slave从Master同步所有数据到本地,具体作用提现如下:Broker服务高可用。一般生产环境不会部署两个主Broker节点和两个从Broker节点(也叫 2m2s),一个 Master宕机后,另一个 Master可以接管工作;如果两个 Master都宕机,消费者可以通过连接Slave继续消费。这样可以保证服务的原创 2021-12-08 22:53:20 · 2518 阅读 · 0 评论 -
RocketMQ-Broker(四)-过期文件删除机制
过期文件删除机制概述CommitLog文件的删除过程Consume Queue、Index File文件的删除过程(待完善)概述RocketMQ中主要保存了CommitLog、Consume Queue、Index File三种数据文件由于内存和磁盘都是有限的资源,Broker不可能永久地保存所有数据,所以一些超过保存期限的数据会被定期删除RocketMQ 通过设置数据过期时间来删除额外的数据文件,具体的实现逻辑是通过org.apache.rocketmq.store.DefaultMessageS原创 2021-12-08 00:27:24 · 648 阅读 · 0 评论 -
RocketMQ-Broker(三)-CommitLog索引机制(索引数据结构、索引创建、索引使用)
CommitLog索引机制索引的数据结构Consumer QueueIndex File索引的构建过程创建Consume Queue和Index File索引创建失败怎么办索引如何使用按照位点查消息按照时间段查消息按照key查询消息索引的数据结构Broker中有两种索引:Consumer Queue和Index FileConsumer Queue消费队列,主要用于 消费 拉取消息、更新消费位点(消息在CommitLog中的位点值) 等 所用的索引源代码可以参考文件org.apache.rocke原创 2021-12-08 00:19:29 · 478 阅读 · 0 评论 -
RocketMQ-Broker(二)-消息存储结构、消息存储机制、读写分离机制
Broker存储机制什么是BrokerBroker存储机制为什么写文件这么快消息存储流程内存映射机制与高效写磁盘文件刷盘机制同步刷盘异步刷盘独写分离机制什么是BrokerBroker是RocketMQ中核心的模块之一,主要负责处理各种TCP请求(计算)和存储消息(存储)Broker存储机制org.apache.rocketmq.store.CommitLog类负责处理全部消息的存储逻辑——普通消息、定时消息、顺序消息、未消费的消息和已消费的消息CommitLog目录下有多个CommitLog文件。原创 2021-12-07 22:40:19 · 695 阅读 · 0 评论 -
RocketMQ-Broker(一)-存储目录结构、启动/停止流程
Broker存储机制:存储目录结构、启动/关闭流程什么是BrokerBroker 存储目录 结构Broker启动流程Broker关闭流程什么是BrokerBroker是RocketMQ中核心的模块之一,主要负责处理各种TCP请求(计算)和存储消息(存储)Broker分为Master和SlaveMaster主要提供服务,Slave在Master宕机后提供消费服务Broker 存储目录 结构Commitlog:这是一个目录,其中包含具体的commitlog文件。文件名长度为20个字符,文件名 由原创 2021-12-07 21:38:39 · 2321 阅读 · 0 评论 -
RocketMQ(六)-消费进度保存机制
消费进度保存机制在消费者启动时 会 同时启动 位点管理器,位点具体是如何管理?RocketMQ 设计了 远程位点管理 和 本地位点管理 两种位点管理方式集群消费时,位点 由客户端 提交给 Broker保存,具体实现代码在RemoteBrokerOffsetStore.java文件中广播消费时,位点 保存在 消费者 本地磁盘上,实现代码在LocalFileOffsetStore.java文件中...原创 2021-11-03 15:43:57 · 443 阅读 · 0 评论 -
RocketMQ(五)-消费者启动机制、Rebalance机制
消费者启动机制DefaultMQPullConsumer核心属性核心方法DefaultMQPushConsumer消费者启动流程DefaultMQPullConsumerImpl启动流程DefaultMQPushConsumerImpl启动流程消费(动词)服务-并行消费服务、顺序消费服务Rebalance机制(面试问题)Rebalancelmpl类核心属性核心方法Rebalance过程(重要!!!)1.消费者实例 在收到Broker通知后 是怎么执行Rebalance的?2.RebalanceService原创 2021-10-31 22:38:02 · 1425 阅读 · 0 评论 -
RocketMQ(四)-消费流程、消费模式
消费流程、消费模式、可靠消费消费流程消费模式集群消费模式广播消费模式可靠消费重试-死信机制(面试问题)Rebalance机制消费流程消费者组:一个逻辑概念,在使用消费者时 需要指定一个组名。一个消费者组 可以订阅 多个Topic消费者实例:一个消费者组程序 部署了 多个进程,每个进程 都可以称为一个 消费者实例订阅关系:一个消费者组订阅一个 Topic 的某一个 Tag,这种记录被称为订阅关系。RocketMQ规定消费订阅关系(消费者组名-Topic-Tag)必须一致。一定要重视这个问题,一个消原创 2021-10-31 16:07:40 · 657 阅读 · 0 评论 -
RocketMQ(三)-生产者发送消息流程
生产者发送消息流程发送流程sendDefaultImpl方法Netty是异步网络通信框架,如何实现发送同步消息?异步发送时有很多request,每个response返回后如何与request进行对应?发送消息实践发送顺序消息发送延迟消息发送事务消息如果生产者忘记了提交或回滚,那么Broker怎么处理Half消息?发送单向消息-sendOneWay批量发送消息总结(重要!!!)发送流程RocketMQ客户端的消息发送通常分为以下3层:业务层:通常指 直接调用 RocketMQ Client发送API原创 2021-10-31 14:46:34 · 525 阅读 · 0 评论 -
RocketMQ(二)-生产者启动流程
生产者启动流程概述核心属性核心方法启动流程DefaultMQProducerImpl#start方法getAndCreateMQClientInstance方法buildMQClientId方法MQClientInstance类属性、构造方法核心方法概述DefaultMQProducer是RocketMQ中默认的生产者实现核心属性namesrvAddr:继承自 ClientConfig,表示 RocketMQ 集群的 Namesrv 地址,如果是多个则用分号分开。比如:127.0.0.1:987原创 2021-10-31 13:41:59 · 371 阅读 · 1 评论 -
RocketMQ(一)-生产者原理
RocketMQ生产者原理概述消息结构消息类型生产者高可用客户端保证重试机制客户端容错Broker端保证数据同步方式保证概述发送消息的一方被称为生产者RocketMQ支持3种消息:普通消息(并发消息)、顺序消息、事务消息RocketMQ支持3种发送方式:同步发送、异步发送、单向发送生产者组:一个逻辑概念,在使用生产者实例的时候需要指定一个组名。一个生产者组 可以生产 多个Topic的消息生产者实例:一个生产者组 部署了 多个进程,每个进程 都可以称为 一个生产者实例Topic:主题名字原创 2021-10-31 12:41:01 · 584 阅读 · 0 评论