RocketMQ最全详解(图文全面总结)

RocketMQ最全详解(图文全面总结)

RocketMQ是非常重要的消息中间件,是构建高并发的基石,下面我就全面来详解RocketMQ @mikechen

RocketMQ定义

RocketMQ是一款分布式消息中间件,由阿里巴巴开发,后开源给apache基金会成为了apache的顶级开源项目。

它是一个高吞吐量、低延迟、高可用性、可伸缩性的消息队列系统,常用于异步通信、解耦系统、削峰填谷等场景。

 

RocketMQ特点

RocketMQ支持多种消息模型,包括:发布/订阅和点对点模式,并提供了消息顺序保证、消息事务、监控与管理等特性。

具备4大特点:

  1. 高性能:RocketMQ具有高吞吐量、和低延迟的特性,可以处理大量消息并快速传递。
  2. 可靠性:RocketMQ通过数据复制、和故障转移等机制来保证消息的可靠性,即使在节点故障情况下也能保证消息不丢失。
  3. 高可用性:RocketMQ的架构设计支持水平扩展、和故障恢复,能够保证系统的高可用性。
  4. 可扩展性:RocketMQ支持水平扩展,可以根据业务需求动态地增加消息代理节点、和扩展存储层。

 

RocketMQ架构

RocketMQ架构,如下图所示:

RocketMQ最全详解(图文全面总结)

 

1、NameServer

NameServer:是RocketMQ的路由管理中心,负责管理Broker的路由信息。

Producer和Consumer通过NameServer,来发现Broker的位置信息,从而进行消息的发送和接收。

 

2、Broker

Broker是RocketMQ的消息存储、和传递中心,负责存储:消息数据并转发消息给Consumer。

一个Broker实例,可以包含多个主题(Topic)的消息队列,并且支持消息的持久化存储、和高效的消息传递。

每个主题下的消息队列,可以根据业务需求进行划分。

也可以按照,消息的类型、优先级、或者其他维度来划分,这样可以更好地控制消息的传输和消费。

除此之外,Broker分为Master Broker和Slave Broker两种角色。

Master Broker负责写入消息和消息的读取,而Slave Broker则负责消息的备份和故障转移,以保证消息的可靠性。

 

3、Producer

Producer是消息的生产者,负责生产消息并发送给Broker,Producer将消息发送到指定的主题(Topic),然后由Broker转发给对应的Consumer。

Producer可以发送同步消息、异步消息、和单向消息,也支持消息的批量发送、和事务消息。

 

4、Consumer

Consumer是消息的消费者,负责订阅主题并消费消息。

Consumer可以订阅一个、或多个主题,并且可以选择消费消息的方式,如顺序消费和并发消费。

 

RocketMQ的应用场景

RocketMQ最全详解(图文全面总结)

RocketMQ具有广泛的应用场景,主要包括但不限于以下几个方面:

  1. 异步消息通信: RocketMQ可以用作,异步消息通信的基础设施,用于实现分布式系统之间的异步消息传递。
  2. 解耦系统架构: 将消息队列引入系统架构中,可以实现系统之间的解耦,减少各个模块之间的直接依赖。
  3. 削峰填谷: 在高并发场景下,RocketMQ可以用于平滑处理系统的流量波峰,通过消息队列缓冲大量请求,避免系统因突发流量而崩溃。
  4. 日志采集与处理: RocketMQ还可以用于日志的采集、传输、和处理等。

陈睿mikechen

10年+大厂架构经验,资深技术专家,就职于阿里巴巴、淘宝、百度等一线互联网大厂。

关注作者「mikechen」公众号,获取更多技术干货!

后台回复架构,即可获取《阿里架构师进阶专题全部合集》,后台回复面试即可获取《史上最全阿里Java面试题总结

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧