我正在研究卡夫卡流。我想使用选择性非常低(几千分之一)的过滤器来过滤我的流。我正在看这个方法:https://kafka.apache.org/0100/javadoc/org/apache/kafka/streams/kstream/KStream.html#filter(org.apache.kafka.streams.kstream.Predicate)
但我找不到任何证据,如果过滤器将由消费者评估(我真的不想将大量 GB 转移给消费者,只是将它们扔掉),或者在经纪人内部(耶!)。
如果在消费者方面进行评估,有什么办法,如何在经纪人中做到这一点?
Thanks!
Kafka不支持broker端过滤。如果您使用 Streams API,过滤将在您的应用程序中完成(谓词不会由KafkaConsumer
但在拓扑的“处理器节点”内——即在 Streams API 运行时代码内)。
这可能有帮助:https://docs.confluence.io/current/streams/architecture.html
不支持代理端过滤的原因是,代理仅使用(1)字节数组作为键和值数据类型,并使用(2)零复制机制来实现高吞吐量。需要代理端过滤,以在代理端反序列化数据,这将严重影响性能(反序列化成本和无零复制优化)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)