• 前提条件:生产者生产的消息是有序的,为了保证有序性,生产者采用了双端队列,保证最新消息发送失败也能最先发出。
  • 两种方案:
  • 方案一,kafka topic 只设置一个partition分区
  • 方案二,producer将消息发送到指定同一个partition分区
  • 解析:
  • 方案一:kafka默认保证同一个partition分区内的消息是有序的,则可以设置topic只使用一个分区,这样消息就是全局有序,缺点是只能被consumer group里的一个消费者消费,降低了性能,不适用高并发的情况
  • 方案二:既然kafka默认保证同一个partition分区内的消息是有序的,则producer可以在发送消息时可以指定需要保证顺序的几条消息发送到同一个分区,这样消费者消费时,消息就是有序。

【Kafka】Kafka如何保证消息的有序性

  • producer发送消息时具体到topic的哪一个partition分区,提供了三种方式

  • 指定分区

  • 不指定分区,有指定key 则根据key的hash值与分区数进行运算后确定发送到哪个partition分区

  • 不指定分区,不指定key,则轮询各分区发送
    【Kafka】Kafka如何保证消息的有序性

用博客见证成长,用行动证明我在努力。
如果你有缘看到我博客,对你有帮助、喜欢博客内容,请“点赞” “评论”“收藏”一键三连哦!

相关文章:

  • 2021-05-17
  • 2022-12-23
  • 2022-12-23
  • 2022-03-01
  • 2020-04-27
  • 2022-12-23
  • 2021-09-08
猜你喜欢
  • 2022-12-23
  • 2021-07-09
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案