简述RocketMQ系统架构及其相关概念

2023-12-05 20:36:17 浏览数 (1)

一、概述

RocketMQ是一款高性能、高吞吐量的分布式消息队列系统,它采用了分布式架构,支持多生产者和消费者并发读写,具有高可用性、高吞吐量、低延迟等特点。本文将对RocketMQ的系统架构进行详细解析。

二、架构设计

RocketMQ采用了分布式架构,主要包括以下部分:

  1. NameServer集群:NameServer集群负责存储和管理生产者和消费者的元数据信息,以及提供负载均衡和故障转移功能。
  2. Broker集群:Broker集群负责存储和转发消息,以及提供负载均衡和故障转移功能。每个Broker都有一个独立的NameServer实例,用于与NameServer通信。
  3. 生产者集群:生产者集群负责向Broker投递消息,以及提供负载均衡和故障转移功能。生产者通过连接到NameServer获取队列的元数据信息,然后将消息发送到指定的队列中。
  4. 消费者集群:消费者集群负责从Broker中拉取消息并进行处理,以及提供负载均衡和故障转移功能。消费者通过连接到NameServer获取队列的元数据信息,然后从指定的队列中拉取消息。

三、相关概念

消息(Message)

传输最小单元

主题(Topic)

有点类似RabbitMQ的交换机。一类消息的集合,RocketMQ消息订阅基本单位。每个主题包含若干消息,每条消息只能属于一个主题。

标签(Tag)

有点类似RabbitMQ的路由键,为主题设置不同的标签,同一个工程不同业务,不同标签

eg:

    Topic:product-service

    tag:price、stock

    消费者可以监听主题product-service,不同tag消息

队列(Queue)

存放消息。一个主题多个队列(分区)

注意:一个Topic的队列中消息只能被一个消费组的的的一个消费者消费。不允许同个消费者组的多个消费者消费

消息标识(MessageId/Key)

RocketMQ中每个消息拥有唯一的MessageId,且可以携带具有业务标识的Key,以方便对消息的查询

Name Server(类似注册中心)

NameServer是一个Broker与Topic路由的注册中心,支持Broker的动态注册与发现。

主要两个功能:

Broker管理:维护broke信息,位置心跳,检查B荣可人是否存活

路由信息管理:Producer和Conumser通过NameServer获取整个Broker集群的路由信息,从而进行消息的投递和消费

四、总结

RocketMQ采用分布式架构,包括NameServer、Broker、Producer和Consumer等核心组件。NameServer负责存储和管理生产者和消费者的元数据信息,Broker负责消息的存储、转发、持久化等功能,Producer负责向Broker投递消息,Consumer负责从Broker中拉取消息并进行处理。

我正在参与2023腾讯技术创作特训营第四期有奖征文,快来和我瓜分大奖!

0 人点赞