星海

分布式与消息队列 · 单选题 · 第 61 题

Java 后端开发面试 · 第 61 题

关于 Kafka 的消息顺序,下列说法正确的是?

  1. AKafka 保证整个主题内的全部消息严格有序,与分区的数量没有关系
  2. BKafka 完全不保证任何顺序,应用必须自己按时间戳重新排序之后再处理
  3. CKafka 会按照消息里的时间戳自动排序,所以不同分区之间也是有序的
  4. D只保证同一分区内有序;需要有序的消息应使用相同的 key,发往同一分区

答案

D D. 只保证同一分区内有序;需要有序的消息应使用相同的 key,发往同一分区

解析

分区是 Kafka 的并行单位,每个分区是一个只追加的日志,消费者按偏移量顺序读取,因此分区内有序。同一订单的消息用订单号作 key,哈希到同一分区,就能保证这笔订单的事件按顺序处理。开启幂等生产者可以避免重试时的乱序和重复。

在线刷这套题:即时判分、错题本、闪卡复习,不用登录就能练。