kafka 消费者可以在从主题轮询所有消息之前过滤消息吗?

mik*_*688 9 java filtering producer-consumer apache-kafka

据说消费者只能阅读整个主题。没有运气对经纪人进行评估以过滤消息。

这意味着我们必须消费/接收来自主题的所有消息并在客户端过滤它们。

这太多了。我想知道我们是否可以根据已经传递给代理的东西(例如 msg 键或其他东西)过滤和接收特定类型的消息。

从方法Consumer.poll(timeout)来看,我们似乎没有多余的事情可以做。

Mic*_*son 8

不,对于消费者,您不能只接收来自主题的一些消息。消费者按顺序获取所有消息。

如果您不想在 Consumer 中过滤消息,则可以使用 Streams 作业。例如,Streams 会从您的主题中读取消息,然后仅将消费者感兴趣的消息推送到另一个主题。然后消费者可以订阅这个新主题。

  • 根据我的理解,即使使用流,您仍然会将数据带到客户端。 (3认同)