rocketmq总体理解

RocketMQ主要由NameServer、Broker、Producer和Consumer四部分组成,支持集群部署。NameServer集群互不干扰,保存Broker注册信息。Broker集群负责消息存储与转发,可采用多种部署模式。Producer集群向NameServer获取topic列表并向Broker发送消息,Consumer集群通过NameServer获取列表并消费消息。NameServer中的路由信息仅存储在内存中,宕机后丢失。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 rocketmq的文章在网络上有大量的文章分析,而且分析的非常不错。本人此处发表rocket文章只是学习过程中的心得体会,可能分析不是很准确,希望有缘人指出其中问题,日后改正!

rocketmq总体架构

这里写图片描述

从上图中可以看出,rocketmq主要分为四大部分,分别为nameserver,broker,produer,consumer。其中每一个部分都可以集群部署。

  • nameServer集群:独立部署,互相不受影响,主要是保存了broker注册的相关信息,与其他三个集群之间采用长连接通讯。其中一台宕机,不影响其他的机器。
  • broker集群:rocketmq中消息的存储与转发服务器,主要有多个master-slave模式,双master部署模式,单个master模式。消息在每一个master中都是同样的存储,集群内部master与slave之间的有同步,异步通讯方式。
  • producer集群:产生消息的集群,可以是单个应用也可以是集群。通过长连接向nameServer集群获取topic列表,向broker集群进行发送消息。producer与master建立长连接。
  • consumer集群:消费消息的集群,可以是单个应用也可以集群。消费消息方式主要有广播和集群两种模式。consumer通过长连接向nameserver集群获取topic列表,然后从broker集群中消费消息。consumer与broker集群中的master和slave都建立长连接,这个与producer不同。

rocketmq逻辑架构

这里写图片描述
rocketmq逻辑图中显示,生产者producer与消费者consumer通过broker集群来进行消息的转发与存储。其中topicA,B,C,D在rocketmq中是消息的分类。

  • Topic:一个topic代表一类消息,通常指一个应用的消息对应一个Topic。生产者可以自己发送消息时告诉broker创建集群(开发环境可以),也可以通过命令在broker集群中创建好(生产环境推荐)。broker将topic信息注册到nameserver集群中。
  • tags:消息标签,在同一个topic中,可以通过tags进行消息分类或过滤。

NameServer集群

  1. nameServer集群没有名称,可以横向扩展,集群内部各个机器没有任何通讯
  2. broker集群中的每个节点启动时,都会通过长连接向nameServer集群中注册信息(主要是topic路由信息)
  3. producer发送消息时,通过长连接向nameServer获取topic路由信息,从而实现与broker中master通讯。
  4. consumer消费消息时,通过长连接向nameServer获取topic路由信息,达到consumer与master,slave通讯。
    5.nameServer中保存的路由信息都保存在内存中,宕机之后,消息丢失。rocketmq主要是通过RouteInfoManager类管理。
    这里写图片描述
    图中就是通过mqadmin命令查看的topicTestA路由信息

broker集群

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值