我需要一个kafka主题,它在同一个组中有多个java消费者。一个要求是我们必须能够降低特定消费者的吞吐量。现在,根据我的理解,Kafka是如何工作的,仅仅是在读取之间引入睡眠,就会导致分配给消费者的消息堆积起来,这是我们不希望看到的。使用者的节流最好能够随意进行,而无需重新启动使用者(被节流者除外)或生产者。
经过一些研究,我只能找到两种方法:
只需在消耗一定量后断开使用者的连接一段时间,即可保持静态吞吐量。这将导致代理将其分区重新分配给其他使用者。
为生产者创建一个自定义分区器,它将查看分区元数据,并对那些未受限制的元数据进行优先级排序。从javakafkaapi来看,它似乎不支持自定义元数据,因此这些数据必须来自其他地方。
就这些吗?我觉得限制消费者是一个更常见的用例,但是我一直找不到任何满足我们需求的东西。如果你知道更好的解决方案,请回答。谢谢您。
暂无答案!
目前还没有任何答案,快来回答吧!