降低Kafka使用者的吞吐量而不导致消息排队?

问题描述

我需要一个Kafka主题,该主题在同一组中具有多个Java使用者。一个要求是我们必须能够减少特定使用者的吞吐量。现在,由于据我所知kafka的工作原理,仅在读取之间引入睡眠会导致分配给消费者的消息堆积,这是我们不希望的。消费者的节流应该最好能够随意进行,而不必重新启动消费者(除了被节流的消费者)或生产者。

经过一番研究,我只能找到两种方法来做到这一点:

  1. 在消耗一定数量后仅断开消耗器一段时间,以保持静态吞吐量。这将导致经纪人将其分区重新分配给其他使用者。
  2. 为生产者创建一个自定义分区程序,该程序将查看分区元数据并优先处理未限制的元数据。从Java Kafka API来看,它似乎不支持自定义元数据,因此该数据必须来自其他地方。

这就是全部吗?我认为节流消费者将是一个更常见的用例,但是我一直找不到能满足我们要求的东西。 如果您知道更好的解决方案,请回答。谢谢。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...