你知道吗?在消息中间件的编年史上,RocketMQ可谓独当一面。作为Apache 顶级项目(TLP),Apache RocketMQ 是国内首个非 Hadoop 生态体系的顶级项目,开源至今被全球广泛应用,堪称阿里技术中的一颗“掌上明珠”。
阿里高并发架构,为什么用RocketMQ?
Kafka主要定位日志传输,特性很难全面满足淘宝的交易、订单、充值等场景。所以,阿里团队研发了定位于非日志可靠消息传输的RocketMQ,RocketMQ取消了Kafka的分区机制,完全支持顺序消费和事务消息,是搭建高并发架构的不二之选。
4年前的双十一,阿里中间件团队和全世界共同见证了RocketMQ低延迟存储架构的“首秀”,成功扛住曾让无数大牛束手无策的世界级流量洪峰,达成保障用户体验如丝般顺滑的目标。这场万亿级高并发场景下的实战,堪称经典。
目前,RocketMQ被阿里广泛应用在订单、交易、充值、流计算、消息推送、日志流式处理、binglog分发等场景,已然是阿里核心系统的“扛把子”。
它的数据可靠性如何?
RocketMQ支持异步实时刷盘、同步刷盘、同步复制、异步复制,而则Kafka使用异步刷盘方式,异步复制、同步复制。RocketMQ的同步刷盘在单机可靠性上比Kafka更高,不会因为操作系统Crash,导致数据丢失。
不同的数据分区影响了什么?
Kafka同步Replication理论上性能低于RocketMQ的同步Replication,原因是Kafka的数据以分区为单位组织,意味着一个Kafka实例上会有几百个数据分区。而RocketMQ一个实例上只有一个数据分区,可以充分利用IO组Commit机制,有更好的IO性能,降低性能损耗。
总结
在消息投递实时性、严格的消息顺序、定时消息等核心功能方面,RocketMQ均比Kafka更加出色。非常适合应对更丰富的业务场景,包括涉及异步解耦、顺序消息、分布式事务消息(交易系统、支付红包等)等大厂核心场景。
注意:本文归作者所有,未经作者允许,不得转载