队列

image.png

Kafka/RocketMQ选型:

Kafka高吞吐量,适合日志处理,大数据这类对于消息丢失不敏感的场景

RocketMQ:适合实时业务处理

使用场景

  1. Kafka 适合对于延迟不敏感、批量型、Topic 数量可控、对于消息丢失不敏感的场景。比如大数据场景的 MySQL-2Hive、MySQL-2-Flink 的数据流通道,日志数据流通道等。
  2. RocketMQ 适用于金融转账消息、订单状态变更消息、手机消息 Push 等业务场景。这些场景 Topic 数量通常过万,对于消息延迟和丢失极度敏感,数据通常是论条处理。对于海量数据的问题,一般地横向扩容完全可以解决。

主要区分

性能:Kafka吞吐量更高,单机百万/秒;RocketMQ单机10万/秒。

特殊消息:Kafka不支持定时,事务消息等

支持队列数:Kafka超过64个队列(partition)性能下降严重,而RocketMQ最高支持5万个队列

原因:首先都是顺序写入,不过 RocketMQ 是把消息都存一个文件中,而 Kafka 是一个分区一个文件。每个分区一个文件在迁移或者数据复制层面上来说更加得灵活。但是分区多了的话,写入需要频繁的在多个文件之间来回切换,对于每个文件来说是顺序写入的,但是从全局看其实算随机写入,并且读取的时候也是一样,算随机读。而就一个文件的 RocketMQ 就没这个问题。

https://github.com/apache/rocketmq/blob/master/docs/cn/architecture.md

rocketmq/docs/cn at master · apache/rocketmq · GitHub

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容