从 Kafka 检索信息,该信息的字段与很长列表的一个值匹配

Retrieve info from Kafka that has a field matching one value of a very long list

我对 Kafka 有点陌生。

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

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

是否有任何其他更优雅的方式来执行此操作,例如,Kafka 流或消费者中是否有任何功能 api 可以执行此操作?

谢谢

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

如果要检查某个字段是否在列表中,请使用哈希集