RocketMQ最全详解(图文全面总结)
当前位置:点晴教程→知识管理交流
→『 技术文档交流 』
消息中间件是亿级互联网架构的基石,其中最典型有“RocketMQ”消息中间件,大厂最爱考察的内容,下面我就全面来详解。 RocketMQRocketMQ是一款开源的分布式消息中间件,具有高吞吐量、低延迟和高可靠性的特点。 主要解决,如下4大场景: 1、应用解耦 通过消息队列将生产者、和消费者解耦,比如:电商平台中,用户下单后,物流服务...等,可以通过消息队列解耦,彼此独立处理自己的业务逻辑。 2、异步通信 在系统间传递消息时,生产者发送消息后,不需要立即等待消费者处理完毕,而是可以继续执行其他操作,这样可以提高系统的响应速度、和吞吐量。 3、削峰填谷 最典型的就是:阿里双11,秒杀活动中,用户的抢购请求通过消息队列暂存,这就是典型的“削峰填谷”,避免因为瞬时高并发导致数据库压力过大。 4、消息广播 支持消息的多播,便于实现通知、和广播功能,比如:系统监控报警,当发现系统异常时,报警消息通过消息队列广播多个。 RocketMQ原理RocketMQ架构RocketMQ架构,如下图所示: RocketMQ架构:主要由NameServer、Broker、Producer以及Consumer四部分构成。 1.NameServer 提供命名服务,负责管理Topic和Broker的元数据信息。 要包括两个功能,如下图所示: 1)Broker管理
2)路由信息管理 每个NameServer将保存关于Broker集群的整个路由信息,Producer和Conumser通过NameServer,就可以知道整个Broker集群的路由信息,从而进行消息的投递和消费。 2.Broker 消息中间件的服务器,负责存储和传递消息。 如下图所示: Broker的核心功能包含:
3.Producer 消息的生产者,负责发送消息到Broker。 生产者发送消息时,先与Namesrv交互获取Broker信息,然后与Broker建立连接发送消息。 如下图所示:
4.Consumer 消息的消费者,负责从Broker订阅并消费消息。 如下图所示: 消费者通过与Namesrv交互获取Broker信息,并根据主题和队列进行消息订阅。 消费者从Broker拉取消息进行消费,可以设置消费模式(顺序消费或并发消费)和消费进度。 5.消息存储RocketMQ采用顺序写磁盘的方式持久化消息,以保证高吞吐量和消息的持久性。 消息存储在CommitLog文件中,其中包含了消息的主题、标签、属性等信息。 消息索引存储在Index文件中,用于快速查找消息。 6.消息的顺序性保证RocketMQ支持顺序消费,在同一个队列上的消息按照发送顺序被消费。 对于全局有序的场景,可以将消息发送到同一个队列中。 对于局部有序的场景,可以将消息发送到多个队列中,并在消费端根据消息的某个关键属性进行排序。 7.高可用和容错性RocketMQ通过主从复制机制实现高可用性和容错性。 Broker集群中的每个主节点都有相应的备份节点,当主节点出现故障时,备份节点可以接管服务。 Namesrv也可以配置为集群模式,提供高可用性和容错性。 8.消息的事务性RocketMQ支持消息的事务性,允许生产者发送带有事务标记的消息。 生产者发送事务消息时,会先执行本地事务,然后根据事务结果提交或回滚消息。 事务消息的状态和进度由Broker和生产者共同管理和维护。 阅读原文:原文链接 该文章在 2025/7/2 0:15:44 编辑过 |
关键字查询
相关文章
正在查询... |