消息队列RocketMQ和Kafka的区别
性能(单台) | 语言 | 多语言支持客户端 | 优缺点 | |
RocketMQ | 十万级 | java | java |
|
Kafka | 百万级 | 服务端scala,客户端java | 主流语言均支持 |
|
- RocketQA适用于高性能、高可用的消息传递场景,具有丰富的消息过滤和分布式事务特性;
- Kafka适用于高吞吐量、低延迟的实时数据处理和事件驱动的架构场景,具有良好的可伸缩性和持久性
Kafka 消费顺序、消息丢失和重复消费
Kafka 采用的是发布 - 订阅模型。
RocketMQ 的消息模型和 Kafka 基本是完全一样的。唯一的区别是 Kafka 中没有队列这个概念,与之对应的是 Partition(分区)。
Kafka的多副本机制
Kafka 为分区(Partition)引入了多副本(Replica)机制。
分区(Partition)中的多个副本之间会有一个叫做 leader 的家伙,其他副本称为 follower。我们发送的消息会被发送到 leader 副本,然后 follower 副本才能从 leader 副本中拉取消息进行同步。生产者和消费者只与leader副本做交互。
Kafka 的