队列

2023-03-01  本文已影响0人  lesline
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

上一篇 下一篇

猜你喜欢

热点阅读