【问题标题】:How to assign priority to kafka topics如何为kafka主题分配优先级
【发布时间】:2021-05-30 13:26:45
【问题描述】:

如何为KAFKA TOPICS分配优先级,以便所有消费者组中的所有消费者首先从较高优先级的主题中读取,如果较高优先级的主题中没有消息,则应转移到较低优先级的主题。还有如何使它成为抢先式,这样每当新消息到达更高优先级的主题时,消费者应该再次转向它们。

【问题讨论】:

  • 消费者api没有这样的设置
  • 这种情况没有实现吗?我认为优先队列应该是该案例的解决方案,但我无法通过此编码并得到错误的输出。
  • 欢迎您编辑您的问题以包含您尝试过的内容
  • 请看看这个,它可能是你要找的:stackoverflow.com/a/66013251/4602706

标签: java apache-kafka apache-kafka-streams priority-queue


【解决方案1】:

您应该通过代码来实现,一种方法是设置一个具有不同分区的主题,并实现 PartitionAssignor 接口,将“高”优先级键发送到大多数分区,“meduim”发送到较少,“低”发送到较少,例如10,5,3 ,这样的消费者将避免饥饿情况,并且您的“高”消息将具有更高的处理注意力

【讨论】:

  • 我已经实现了这种情况(存储桶优先级模式),但我特别坚持这种情况,如果没有更高优先级的消息,我需要消费者在主题之间切换。并且应该在有任何传入消息的情况下再次切换。
  • 这就是为什么使用一个主题和使用消费者组的分区应该会给你更好的实现解决方案
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-08-19
  • 1970-01-01
  • 2015-05-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多