RocketMQ多Master集群搭建(一)

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

RocketMQ 是什么

RocketMQ 是一款分布式、队列模型的消息中间件-能保证消息的顺序消费、消息拉取模式、高效的订阅者水平扩展能力、实时消息订阅机制、亿级消息堆积能力。具有高性能、高可靠、高实时、分布式特点。
Producer、 Consumer、队列都可以分布式
Producer 向一些队列轮流发送消息,队列集合称为 Topic, Consumer 如果做广播消费,则一个 consumer实例消费这个 Topic 对应的所有队列,如果做集群消费,则多个 Consumer 实例平均消费这个 topic 对应的队列集合
能够保证严格的消息顺序、提供丰富的消息拉取模式、高效的订阅者水平扩展能力
实时的消息订阅机制、亿级消息堆积能力、较少的依赖
RocketMq性能比较高的原因 1.通信层面:netty高效的NIO框架
2.RocketMQ 大量使用多线程、异步
3.采用零拷贝技术优化MMAP ( 中间节约一次拷贝,性能提高50%,磁盘--内核态内存--网卡驱动---网卡;
省去了内核态到用户态拷贝
4.采用文件存储,
顺序读写
5.锁优化。(CAS 无锁化机制)
6.存储设计:读写分离
消息拉取长轮询机制分析 RocketMQ未真正实现消息推模式,而是消费者主动向消息服务器拉取消息,RocketMQ推模式是循环向消息服务端发起消息拉取请求,如果消息消费者向RocketMQ拉取消息时,消息未到达消费队列时,如果不启用长轮询机制,则会在服务端等待shortPollingTimeMills时间后(挂起)再去判断消息是否已经到达指定消息队列,如果消息仍未到达则提示拉取消息客户端PULL—NOT—FOUND(消息不存在);如果开启长轮询模式,RocketMQ一方面会每隔5s轮询检查一次消息是否可达,同时一有消息达到后立马通知挂起线程再次验证消息是否是自己感兴趣的消息,如果是则从CommitLog文件中提取消息返回给消息拉取客户端,否则直到挂起超时,超时时间由消息拉取方在消息拉取是封装在请求参数中,PUSH模式为15s,PULL模式通过DefaultMQPullConsumer#setBrokerSuspendMaxTimeMillis设置。RocketMQ通过在Broker客户端配置longPollingEnable为true来开启长轮询模式。
RocketMQ 物理部署结构
RocketMQ 网络部署特点 NameServer 是一个几乎无状态节点,可集群部署,节点之间无任何信息同步。
Broker 部署相对复杂, Broker 分为 Master 与 Slave,一个 Master 可以对
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值