Rocketmq的整体认识

        上文已经介绍了分布式消息队列的常见概念,从本文开始,将分多篇文章逐步对Rocketmq这款分布式消息队列的架构,功能,以及不同功能的源码实现原理进行分析。本文主要是介绍Rocketmq的功能,架构,加深对rocketmq的认识。

Rocketmq是什么?

    ​    ​Rocketmq是由阿里巴巴2012年开源的分布式消息中间件,现在已经是apache顶级项目。他是一个队列模型的消息中间件,具有高性能、高可靠、高实时、分布式特点。它借鉴了kafka的实现,在kafka基础上丰富了更多的功能,并且提高了堆积消息能力和稳定性。Producer、Consumer、队列都可以分布式部署。Producer 向一些队列轮流发送消息,队列集合称为 Topic,Consumer 如果做广播消费,则一个 consumer实例消费这个 Topic 对应的所有队列,如果做集群消费,则多个 Consumer 实例平均消费这个队列集合。 

Rocketmq的组成和整体架构

    ​    ​由producer,consumer,broker,namesever组成。其中Producer 负责生产消息,Consumer 负责消费消息,Broker 负责存储消息,nameserver负责topic路由信息管理。 

各个组件的​部署图:

各个组件的​交互图:

总结:

1、每个组成部分都可以集群部署,具备横向扩展分布式能力。

2、生产者,消费者,broker都需要和nameserver保持通信,nameserver之间不通信。 

Rocketmq的功能和特性

1、支持顺序消息,能够保证严格的消息顺序

2、提供丰富的消息拉取模式

3、高效的订阅者水平扩展能力

4、实时的消息订阅机制

5、亿级消息堆积能力

6、较少的依赖,自己实现了nameserver,不需要像kafka一样依赖zookeeper 

Rocketmq的存储结构

commitLog是实际消息内容存储的文件

consumerQueue是逻辑队列,消费者和生产者都是通过consumerQueue查找到具体的commitlog再操作的。

索引文件提供查询消息的能力,可以根据消息key,时间戳查询消息

Rocketmq和Kafka的比较

下面是官网给出的对比图。

相比kafka,rocketmq有更多的功能

1、支持定时消息,定时消息使用场景比较多​。

2、发送消息既支持同步也支持异步

3、支持广播消费模式

4、支持可视化管理台对消息topic,broker进行管理

5、更低的延迟

6、支持消息轨迹,可以在控制台查看消息轨迹

总结

本文主要介绍Rocket的组成,架构,和kafka的功能异同,从整体上​对Rocketmq的认识。后续文章将对Rocketmq的功能特性​进行介绍,并对实现原理进行分析。​

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

服务端技术栈

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值