首页 > 解决方案 > 仅使用给定帐户的主题消息

问题描述

我有一项服务计算帐户的信誉分数。它将计算结果放入名为“ReputationScores”的 Kafka 主题中。每条消息看起来像这样:

{ "account" : 12345, "repScore" : 98765}

我希望我的消费者能够使用特定帐户的那些消息。

例如,我想让一个消费者实例只消费账户 12345 的主题为“ReputationScore”的消息。该实例可能应该是其消费者组的唯一成员。

Kafka可以根据消息内容进行过滤吗?最好的方法是什么?

谢谢你的帮助。

标签: apache-kafkakafka-consumer-api

解决方案


Kafka可以根据消息内容进行过滤吗?

由于 kafka 本身不知道您的数据中有什么,因此无法对其进行索引,因此不易搜索。您需要处理完整的主题并明确检查要解析的反序列化记录。例如,这就是具有简单过滤器操作的流处理应用程序将为您提供的。

如果您想保留按特定项目进行查找的能力,您将需要创建一个分区器来分割您感兴趣的所有数据,或者为每个项目创建一个主题(这实际上只适用于某些用例,而不是个人用户帐户之类的东西)。

您可以查看将所有事件插入内存数据库,然后针对该数据库执行查询


推荐阅读