2017-10-20 250 views
0

假设我有ň制片人,对于每一个时间戳卡夫卡发送数据。消费者获取时间戳t的数据的条件是从所有生产者接收到用于时间戳t的数据。不阿帕奇卡夫卡让消费者查询主题的数据,并得到他们,如果条件成立

卡夫卡是否让消费者做这样的检查?或者让卡夫卡为这样的问题提供任何策略?

+0

这不受支持。比较https://stackoverflow.com/questions/46610592/kafka-streams-filtering-broker-or-consumer-side和https://stackoverflow.com/questions/40376905/implement-filering-for-kafka-messages。 –

+0

[为kafka消息实现文件环境]可能的副本(https://stackoverflow.com/questions/40376905/implement-filering-for-kafka-messages) –

+0

消费者是否知道n的价值? –

回答

0

卡夫卡经纪人本身没有办法进行过滤,消费者驱动程序也不做任何过滤。 Kafka线协议在此描述了获取请求: https://cwiki.apache.org/confluence/display/KAFKA/A+Guide+To+The+Kafka+Protocol#AGuideToTheKafkaProtocol-FetchRequest

基本上,每个提取请求将包含一组主题,分区,偏移量,并且没有基于内容的过滤。卡夫卡是一个消息队列,它本身并没有窥探消息。无论你需要什么过滤,都应该在处理逻辑中。如果某条消息与过滤条件不匹配,只需跳过它(偏离路线必须自动提交或通过显式调用所有消息)