RocketMQ多Master集群搭建(一)

本文详细介绍了RocketMQ的物理部署结构、网络部署特点、逻辑部署结构和存储特点,强调了其高可用性和高性能的原因,如零拷贝技术、多线程、异步处理等。还探讨了消息拉取的长轮询机制,并提供了多Master集群的环境搭建步骤,包括配置JDK、解压RocketMQ、修改配置文件和启动服务。

RocketMQ 是什么

RocketMQ 是一款分布式、队列模型的消息中间件-能保证消息的顺序消费、消息拉取模式、高效的订阅者水平扩展能力、实时消息订阅机制、亿级消息堆积能力。具有高性能、高可靠、高实时、分布式特点。
实时的消息订阅机制、亿级消息堆积能力、较少的依赖
能够保证严格的消息顺序、提供丰富的消息拉取模式、高效的订阅者水平扩展能力
Producer、 Consumer、队列都可以分布式
Producer 向一些队列轮流发送消息,队列集合称为 Topic, Consumer 如果做广播消费,则一个 consumer实例消费这个 Topic 对应的所有队列,如果做集群消费,则多个 Consumer 实例平均消费这个 topic 对应的队列集合
面试题:

消息消费概述

消息消费以组的模式开展,一个消费组内可以包含多个消费者,每一个消费者组可订阅多个主题,消费组之间有集群、广播两种消费模式集群模式,主题下的同一条消息只允许被其中一个消费者消费广播模式,主题下的同一条消息,将被集群内的所有消费者消费一次消息服务器与消费者之间的消息传递也有两种模式:推模式、拉模式。所谓的拉模式,是消费端主动拉起拉消息请求,而推模式是消息达到消息服务器后,推送给消息消费者。RocketMQ消息推模式的实现基于拉模式,在拉模式上包装一层,一个拉取任务完成后开始下一个拉取任务。
消息拉取的过程
消息服务端Broker组装消息
消息拉取客户端处理消息
面试题:集群模式下,多个消费者如何对消息队列进行负载呢?

集群模式一个消息队列同一个时间只允许被一个消费者消费,一个消费者可以消费多个消息队列。

RocketMQ支持局部顺序消息消费,也就是保证同一个消息队列上的消息顺序消费。不支持消息全局顺序消费,如果要实现某一个主题的全局顺序消费,可以将该主题的队列数设置为1,牺牲高可用性。

消息发送--

4步

消息验证

路由查找

选择队列

消息发送

RocketMq性能比较高的原因 1.通信层面:netty高效的NIO框架
2.RocketMQ 大量使用多线程、异步
3.采用零拷贝技术优化MMAP ( 中间节约一次拷贝,性能提高50%,磁盘--内核态内存--网卡驱动---网卡;
省去了内核态到用户态拷贝
4.采用文件存储,
顺序读写
5.锁优化。(CAS 无锁化机制)
6.存储设计:读写分离
RocketMQ 的 Netty 网络模型是「主从 Reactor 模型」在分布式消息中间件场景的落地实现:以 Netty 为底层 IO 框架,通过「线程隔离、自定义协议、长连接管理、零拷贝优化」,既发挥了 Netty 高并发的特性,又适配了消息收发的业务需求,最终支撑 RocketMQ 百万级 TPS 的通信能力。这也是主流中间件(如 Kafka、Elasticsearch)基于 Netty 构建网络层的通用思路。
消息拉取长轮询机制分析 RocketMQ未真正实现消息推模式,而是消费者主动向消息服务器拉取消息
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值