如何为kafka主题分配优先级

Posted

技术标签:

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

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

【问题讨论】:

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

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

【讨论】:

我已经实现了这种情况(存储桶优先级模式),但我特别坚持这种情况,如果没有更高优先级的消息,我需要消费者在主题之间切换。并且应该在有任何传入消息的情况下再次切换。 这就是为什么使用一个主题和使用消费者组的分区应该会给你更好的实现解决方案

以上是关于如何为kafka主题分配优先级的主要内容,如果未能解决你的问题,请参考以下文章

@StreamListener 为 kafka 定义 groupId-如何为同一主题设置多个消费者

如何为音频处理设置高优先级线程

如何为以下代码设置优先级高精度位置

如何为新的 android 版本设置更新优先级

如何为某些 HTML 页面部分的屏幕阅读器设置优先级?

如何为所有远程登录的用户设置默认进程调度优先级(“nice”值)?