有别于其他消息中间件由broker做负载均衡并主动向consumer投递消息,RocketMq是基于拉模式拉取消息,consumer做负载均衡并通过长轮询向broker拉消息。
Consumer消费拉取的消息的方式有两种
1. Push方式:rocketmq已经提供了很全面的实现,consumer通过长轮询拉取消息后回调MessageListener接口实现完成消费,应用系统只要MessageListener完成业务逻辑即可
2. Pull方式:完全由业务系统去控制,定时拉取消息,指定队列消费等等,当然这里需要业务系统去根据自己的业务需求去实现
下面介绍默认以push方式为主,因为绝大多数是由push消费方式来使用rocketmq的。
consumer启动流程
指定group
订阅topic
注册消息监听处理器,当消息到来时消费消息
消费端Start
复制订阅关系
初始化rebalance变量
构建offsetStore消费进度存储对象
启动消费消息服务
向mqClientFactory注册本消费者
启动client端远程通信
启动定时任务
定时获取nameserver地址
定时从nameserver获取topic路由信息
定时清理下线的borker
定时向所有broker发送心跳信息,(包括订阅关系)
定时持久化Consumer消费进度(广播存储到本地,集群存储到Broker)
统计信息打点
动态调整消费线程池
启动拉消息服务PullMessageService
启动消费端负载均衡服务RebalanceService
从namesrv更新topic路由信息
向所有broker发送心跳信息,(包括订阅关系)
唤醒Rebalance服务线程
http://blog.csdn.net/quhongwei_zhanqiu/article/details/39142653
相关推荐
通过分析这个源码,我们可以深入了解RocketMQ控制台的工作原理,并且可以根据自身需求进行定制化开发。 1. **RocketMQ控制台概述** RocketMQ控制台主要负责提供图形化的用户界面,帮助管理员监控RocketMQ集群的...
本篇文章将深入解析 RocketMQ 的整体架构,并通过一个简单的消息收发示例来帮助理解其工作流程。 首先,我们要理解消息队列的基本概念。消息队列是一种存储和转发消息的数据结构,它在生产者和消费者之间起到缓冲和...
《深入解析Spring Boot Starter RocketMQ源码》 在现代企业级应用开发中,Spring Boot以其简洁、快速的特性,已经成为主流框架。同时,为了更好地整合各种消息中间件,Spring社区推出了Spring Boot Starter,使得...
### RocketMQ原理详解 #### 一、RocketMQ概述 RocketMQ是一款由阿里巴巴开源的消息中间件,主要用于异步处理、解耦、削峰等场景。它提供了高性能、高可靠性的消息服务,支持点对点消息、发布/订阅模式、事务消息等...
以下将基于给定内容详细解析RocketMQ的原理解析。 ### RocketMQ概述 RocketMQ是由阿里巴巴开源的一款分布式消息中间件。它提供了分布式系统之间的异步消息通信能力,广泛应用于各种业务场景中,如订单处理、任务...
在《RocketMQ-原理简介.pdf》中,可能会深入解析RocketMQ的工作原理: 1. **消息存储机制**:RocketMQ采用日志文件存储消息,通过CommitLog和IndexFile配合,实现高效的消息查询和检索。 2. **消息传输机制**:...
本文将从以下几个方面对RocketMQ的原理进行解析。 ### 一、Producer #### 1. Producer启动流程 Producer是消息的发送者,它的启动流程如下: - 在发送消息时,如果Producer集合中没有对应topic的信息,则会向...
测评程序开始消费时,会启动10~20个Consumer,每个Consumer属于一条线程,而且attach到一个queue上,并订阅多个Topic。对于被多个Consumer订阅的某个Topic,这些Consumer直接的消费应该是独立的,也就是每个Consumer...
在深入探讨RocketMQ核心源码之前,...通过对RocketMQ的CommitLog和ConsumeQueue的理解,以及NameServer和Broker架构的解析,我们可以更深入地掌握RocketMQ的工作原理,这对于优化系统性能和解决实际问题具有重要意义。
本压缩包“RocketMQ原理分析.rar”包含了对RocketMQ核心机制的深入解析,旨在帮助用户理解其工作原理。 RocketMQ的核心组件包括Producer、Consumer、NameServer和Broker四个部分: 1. **Producer**: 生产者是消息...
### RocketMQ实战与原理解析 #### 一、RocketMQ简介 Apache RocketMQ是一个分布式消息中间件,由阿里巴巴捐赠并成为Apache顶级项目。RocketMQ具备高性能、低延迟、高可靠等特性,支持发布/订阅模式、消息过滤、...
【全面解剖RocketMQ与项目实战-day4-part2】是一个深入学习Apache RocketMQ的课程资料压缩包,包含多个视频教程,旨在帮助用户深入了解RocketMQ的工作原理及实际应用。RocketMQ是一个开源的消息中间件,广泛应用于...
在这个“全面解剖RocketMQ和项目实战-day4-part4.7z”资料包中,包含了一系列视频教程,详细讲解了RocketMQ的关键特性和工作流程,下面将对这些知识点进行深入解析。 1. **实时更新消息消费队列与索引文件流程说明*...
本文档主要针对 `consumer.start.pdf` 文件中的关键概念进行详细解析,帮助读者深入了解 RocketMQ 消费者(Consumer)的工作原理及其内部机制。 #### 二、关键组件及功能介绍 1. **DefaultMQPushConsumer**:这是 ...
RocketMQ 的源码解析有助于开发者更好地掌握其实现机制,提升在实际项目中的应用能力。 1. **整体架构** RocketMQ 采用主从复制模型,主要包含四个核心组件:Producer、Consumer、NameServer 和 Broker。Producer ...
RocketMQ源码分析,分为存储篇、NameServer篇、Broker篇、Producer篇、Consumer篇五大部分进行源码级的讲解。大致如下: 1、讲解commitlog、consumequeue、index、transaction文件等数据结构、数据读写、HA高可用等...
下面我们将逐一解析RocketMQ的关键组件和功能。 1. **NameServer**:NameServer是RocketMQ的核心组件之一,它负责维护Topic与Broker的映射关系,提供服务注册与发现的功能。开发者可以通过源码分析NameServer如何...
### RocketMQ 用户指南 v3.0.4 关键知识点解析 #### 1. 前言 - **目标读者:** RocketMQ用户指南的目标读者包括应用开发者及系统运维人员。 - **主要内容:** 指南主要介绍了如何使用RocketMQ以及如何进行服务器集群...
通过对RocketMQ源码的逐层解析,我们可以理解其内部工作机制,包括NameServer的角色、Broker的启动与注册、Producer与Consumer的工作模式,以及消息存储和延迟处理的细节。这将有助于我们在实际开发中更好地利用...
1. **ThreadLocal的底层原理** - `ThreadLocal` 通过每个线程拥有独立的变量副本实现线程间的隔离。 - 主要用于解决线程安全问题。 2. **如何理解volatile关键字** - `volatile` 关键字确保了可见性和禁止指令...