首页 > 解决方案 > 从 Kafka 中检索具有匹配一个很长列表的一个值的字段的信息

问题描述

我对卡夫卡有点陌生。

我有一个概念问题。假设有一个 Kafka 主题(发布订阅),其中包含消息(格式为 JSON)。每条消息都有一个名为“用户名”的字段。有多个应用程序使用此主题。假设我们有一个应用程序为 100,000 个用户处理消息。此应用程序有 100,000 个用户名的列表。因此,我们的应用程序需要监视主题并处理用户名字段与我们的 100,000 个用户名中的任何一个匹配的消息。

这样做的一种方法是我们阅读每条发布的消息并获取该消息中的用户名,并遍历我们拥有的 100,000 个用户名列表。如果我们列表中的一个名称与用户名匹配,我们会处理它,否则我们会忽略该消息。

有没有其他更优雅的方法可以做到这一点,Kafka 流或消费者 api 中是否有任何功能可以做到这一点?

谢谢

标签: apache-kafkakafka-consumer-apiapache-kafka-streams

解决方案


您必须使用、反序列化和检查每条记录。您无法使用任何更高级别的库来解决消费者 API 基础知识,但是是的,ksqlDB 或 Kafka Streams 使此类代码更易于编写,只是不再具有更高的性能

如果要检查字段是否在列表中,请使用 Hashset


推荐阅读