前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >简述RocketMQ系统架构及其相关概念

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

原创
作者头像
小明爱吃火锅
发布2023-12-05 20:36:17
3050
发布2023-12-05 20:36:17
举报
文章被收录于专栏:小明说Java小明说Java

一、概述

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腾讯技术创作特训营第四期有奖征文,快来和我瓜分大奖!

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、概述
  • 二、架构设计
  • 三、相关概念
  • 四、总结
相关产品与服务
负载均衡
负载均衡(Cloud Load Balancer,CLB)提供安全快捷的流量分发服务,访问流量经由 CLB 可以自动分配到云中的多台后端服务器上,扩展系统的服务能力并消除单点故障。负载均衡支持亿级连接和千万级并发,可轻松应对大流量访问,满足业务需求。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
http://www.vxiaotou.com