RocketMQ(一)发展史介绍

原创
2021/05/30 13:59
阅读数 173

一、消息队列的优点

  • 高负荷请求堵塞——> 削峰填谷
  • 开发资源依赖   ——> 程序间解耦
  • 获取响应等待   ——> 异步处理
  • 通信失败容错   ——> 数据一致性

二、主流消息队

特性 ActiveMQ RabbitMQ RocketMQ Kafka
产生时间 2007 2010 2017 2012
开发语言 java erlang java scla
单机吞吐量 万级 万级 10万级 10万级

时效性-消息延迟

ms级 us级 ms级 ms级别内
可用性-架构设计 高(主从架构) 高(主从架构) 非常高(分布式架构) 非常高(分布式架构)
消息丢失 理论上不会丢失 理论上不会丢失 理论上不会丢失 理论上不会丢失
生产者消费者模式 支持 支持 支持 支持
发布订阅模式 支持 支持 支持 支持
支持协议 STOMP AMQP 自定义一套  
持久化 内存、文件、数据库 内存、文件 磁盘文件  
事务 不支持 支持 支持 支持
特点

优点:成熟的产品,非大规模场景应用

缺点:官方社区现在对ActiveMQ 5.x维护越来越少,较少在大规模吞吐的场景

优点:erlang语言性能较好,大规模应用使用

缺点:erlang语言难度较大,依赖于开源社区的快速维护,不利于二次开发和维护。集群不支持动态扩展

优点:性能非常好,支持多种消费。分布式扩展设计,主从HA,支持上万个队列

缺点:没有实现JMS接口,

考虑是否兼容现有系统

优点:功能较为简单,主要支持简单的MQ功能,在大数据领域的实时计算以及日志采集中使用

缺点:单机超过64个队列/分区,load会发生明显飙高,队列越多,load越高,发送消息响应时间变长;失败不支持重试;

2001年,阿里内部适应淘宝B2C启动“五彩石项目”

2011年,阿里为满足内部顺序消息、海量消息堆积、完全自主控制消息队列,弃用Apache ActiveMQ,创建MetaQ。同年,LinkedIn将kafka开源

2012年,阿里参考kafka基于MetaQ,研发消息队列引擎RocketMQ

2016年,阿里将RocketMQ捐献给Apache基金会,2017年9月,RocketMQ成为Apache顶级项目(国内首个互利网中间件在Apache的顶级项目)

展开阅读全文
加载中

作者的其它热门文章

打赏
0
0 收藏
分享
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部