java - 如何使用 Apache Kafka 进行内容过滤?

标签 java apache-kafka

我有一个名为 mytopic 的主题。该主题有 1 个生产者和 2 个消费者。我需要做的是根据前缀过滤生产者生成的消息。例如,如果一条消息以“a”前缀开头,那么只有第一个消费者必须接受它。如果它以 'b' 前缀开头,那么只有第二个消费者必须接受它。

我搜索了很多,我发现的是过滤来自一个主题的消息,然后在过滤后将它们发送到不同的主题。但是如上所述,我需要对一个主题进行过滤。我如何在 Kafka 中做到这一点?

最佳答案

允许两个消费者使用所有数据,一旦您使用 java 流 和特定于消费者的过滤逻辑来过滤它们。

简而言之,我的意思是按原样获取数据并使用 java 代码过滤它们,而不是在 Kafka 级别执行。

更新:

如果你想在Kafka Level过滤,你可以使用partitions,同时发送消息到kafka topic,发送前缀为'a'的消息到Partition -1,以及带有前缀 'b' 的消息到 Partition-2

现在,在消费时只消费各自消费者中的特定分区

关于java - 如何使用 Apache Kafka 进行内容过滤?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49040989/

相关文章:

java - Java2d 有哪些更快的替代品?

java - 使用ant war任务包含WEB-INF目录下的文件

python - 如何使用 kafka-python 以编程方式创建主题?

apache-kafka - 如何发送时间窗口 KTable 的最终 kafka-streams 聚合结果?

apache-kafka - 如何更改主题的起始偏移量?

apache-spark - 如何在Spark结构化流中手动设置group.id并提交kafka偏移量?

java - 如何正确使用Apache Common BeanUtil的BeanComparator来受益于内省(introspection)?

java - 将结果集中的值写入文本文件(.txt 文件)

java - 为什么用科学计数法写一个数字会在这段代码中有所不同?

mysql - Confluence kafka jdbc 连接查询方式