RocketMQ架构

简介: 架构解析

rmq_basic_arc

概述

RocketMQ是一个分布式消息和流处理平台,具有低延迟、高性能和高可靠、万亿级容量和灵活的可扩展性。它由四部分组成:name servers,brokers,生产者和消费者。它们中的每一个都可以水平扩展,而没有单一的故障节点。

NameServer 集群

Name Servers提供了轻量级的服务发现和路由。每个Name Server记录全部的路由信息,提供相应的读和写服务,并支持快速存储扩展。

Broker 集群

Brokers通过轻量级的TOPIC和QUEUE机制处理消息存储。支持Push和Pull模式,包含故障容忍机制(2或3份),提供强大的峰值填充和以原始时间顺序累积千亿条消息的能力。
另外,Brokers提供灾难恢复,丰富的度量统计和警告机制,这些都是传统消息系统缺少的。

生产者集群

生产者支持分布式部署。分布式生产者通过多种负载均衡模式发送消息到Broker集群,发送过程支持快速故障并具有低延迟。

消费者集群

消费者也支持以Push和Pull模式的分布式部署。
它也支持分布式消费和消息广播。
它提供实时消息订阅机制,可以满足大部分消费者的需求。

NameServer

NameServer is a fully functional server, which mainly includes two features:

  • Broker 管理,NameServer 接收来自Broker集群的注册,提供心跳机制来检测broker是否存活。
  • 路由管理,每个NameServer都持有有关broker集群的整个路由信息和客户端查询的队列信息。

我们都指定,RocketMQ客户端(生产者/消费组)通过NameServer查询队列信息,但客户端怎么查找NameServer 地址呢?

将客户端地址列表加入NameServer有四种方式:

  • 编码方式,如producer.setNamesrvAddr("ip:port")。
  • Java选项, 使用 rocketmq.namesrv.addr.
  • 环境变量, 使用 NAMESRV_ADDR.
  • HTTP Endpoint.

Broker Server

Broker服务 负责消息存储和传递,消息查询,保证HA等。
rmq_basic_component

Broker 服务有些重要的子模块:

  • 远程处理模块,broker的入口,处理来自客户端的请求。
  • 客户端管理器,管理客户端(生产者/消费者),维护消费组的订阅主题。
  • 存储服务,提供简单的APIs来存储或查询物理磁盘中的消息。
  • HA 服务, 提供主broker和从broker的数据同步
  • 索引服务, 通过指定键建立消息索引,提供快速的消息查询。
相关实践学习
快速体验阿里云云消息队列RocketMQ版
本实验将带您快速体验使用云消息队列RocketMQ版Serverless系列实例进行获取接入点、创建Topic、创建订阅组、收发消息、查看消息轨迹和仪表盘。
消息队列 MNS 入门课程
1、消息队列MNS简介 本节课介绍消息队列的MNS的基础概念 2、消息队列MNS特性 本节课介绍消息队列的MNS的主要特性 3、MNS的最佳实践及场景应用 本节课介绍消息队列的MNS的最佳实践及场景应用案例 4、手把手系列:消息队列MNS实操讲 本节课介绍消息队列的MNS的实际操作演示 5、动手实验:基于MNS,0基础轻松构建 Web Client 本节课带您一起基于MNS,0基础轻松构建 Web Client
目录
相关文章
|
9月前
|
消息中间件 大数据 关系型数据库
RocketMQ实战—3.基于RocketMQ升级订单系统架构
本文主要介绍了基于MQ实现订单系统核心流程的异步化改造、基于MQ实现订单系统和第三方系统的解耦、基于MQ实现将订单数据同步给大数据团队、秒杀系统的技术难点以及秒杀商详页的架构设计和基于MQ实现秒杀系统的异步化架构。
682 64
RocketMQ实战—3.基于RocketMQ升级订单系统架构
|
消息中间件 存储 Java
RocketMQ(一):消息中间件缘起,一览整体架构及核心组件
【10月更文挑战第15天】本文介绍了消息中间件的基本概念和特点,重点解析了RocketMQ的整体架构和核心组件。消息中间件如RocketMQ、RabbitMQ、Kafka等,具备异步通信、持久化、削峰填谷、系统解耦等特点,适用于分布式系统。RocketMQ的架构包括NameServer、Broker、Producer、Consumer等组件,通过这些组件实现消息的生产、存储和消费。文章还提供了Spring Boot快速上手RocketMQ的示例代码,帮助读者快速入门。
|
9月前
|
消息中间件 存储 设计模式
RocketMQ原理—5.高可用+高并发+高性能架构
本文主要从高可用架构、高并发架构、高性能架构三个方面来介绍RocketMQ的原理。
3082 21
RocketMQ原理—5.高可用+高并发+高性能架构
|
10月前
|
消息中间件 人工智能 自然语言处理
基于 RocketMQ 事件驱动架构的 AI 应用实践
基于 RocketMQ 事件驱动架构的 AI 应用实践
393 2
|
10月前
|
存储 消息中间件 人工智能
基于 Apache RocketMQ 的 ApsaraMQ Serverless 架构升级
基于 Apache RocketMQ 的 ApsaraMQ Serverless 架构升级
243 0
|
消息中间件 弹性计算 运维
云消息队列RabbitMQ 版架构优化评测
云消息队列RabbitMQ 版架构优化评测
220 6
|
消息中间件 Java RocketMQ
微服务架构师的福音:深度解析Spring Cloud RocketMQ,打造高可靠消息驱动系统的不二之选!
【8月更文挑战第29天】Spring Cloud RocketMQ结合了Spring Cloud生态与RocketMQ消息中间件的优势,简化了RocketMQ在微服务中的集成,使开发者能更专注业务逻辑。通过配置依赖和连接信息,可轻松搭建消息生产和消费流程,支持消息过滤、转换及分布式事务等功能,确保微服务间解耦的同时,提升了系统的稳定性和效率。掌握其应用,有助于构建复杂分布式系统。
415 0
|
6月前
|
消息中间件 数据管理 Serverless
阿里云消息队列 Apache RocketMQ 创新论文入选顶会 ACM FSE 2025
阿里云消息团队基于 Apache RocketMQ 构建 Serverless 消息系统,适配多种主流消息协议(如 RabbitMQ、MQTT 和 Kafka),成功解决了传统中间件在可伸缩性、成本及元数据管理等方面的难题,并据此实现 ApsaraMQ 全系列产品 Serverless 化,助力企业提效降本。
|
4月前
|
消息中间件 Java Kafka
消息队列比较:Spring 微服务中的 Kafka 与 RabbitMQ
本文深入解析了 Kafka 和 RabbitMQ 两大主流消息队列在 Spring 微服务中的应用与对比。内容涵盖消息队列的基本原理、Kafka 与 RabbitMQ 的核心概念、各自优势及典型用例,并结合 Spring 生态的集成方式,帮助开发者根据实际需求选择合适的消息中间件,提升系统解耦、可扩展性与可靠性。
348 1
消息队列比较:Spring 微服务中的 Kafka 与 RabbitMQ