如何在将消息传递给消费者之前过滤消息?

时间:2015-06-18 12:25:18

标签: java apache-kafka

我正在与Kafka一起创建一个主管和事件管理系统。问题是我们得到了很多假的线索(广告)。我们的系统中也有许多消费者。无论如何在去消费者之前过滤广告? 我的解决方案是将所有内容写入第一个主题,然后由过滤器使用者读取,然后将其写回第二个主题或过滤它。 但我不确定它是否有效。有什么想法吗?

4 个答案:

答案 0 :(得分:5)

是的 - 实际上我确信这是你应该在你的环境中处理问题的方式。因为Kafka仅对高效传输数据有用,所以在清理数据方面本身无法做到。消耗中间消费者获得的所有信息,这些信息可以运行自己的测试来确定通过其过滤器的内容并推送到不同的主题/分区(根据您的需要)以获得最佳数据。

答案 1 :(得分:5)

你可以使用Kafka Streams(http://kafka.apache.org/documentation.html#streamsapi)和0.10。+版本的Kafka。这完全适合我的用例。

答案 2 :(得分:1)

答案 3 :(得分:0)

看看Confluent的KSQL。 (它是免费的开放源代码,https://www.confluent.io/product/ksql/。)它在后台使用了Kafka Streams,您可以在服务器端定义ksql查询和表,并将其结果写入kafka主题,因此您可以只使用这些主题,而不是编写代码来创建中间筛选使用者。您只需要编写ksql表“ ddl”或查询。