我们可以在Kafka中进行服务器端过滤吗?

时间:2018-11-14 04:14:22

标签: apache-kafka

我想知道我们可以在Kafka中以某种方式进行服务器端过滤吗?有哪些替代方法可本地支持服务器端过滤?我的意思是Kafka可以向客户端提供特定的消息,以避免在客户端进行过滤吗?

2 个答案:

答案 0 :(得分:0)

  

Kafka可以向客户端提供特定消息

Kafka不是基于推送的系统;它不“提供消息”。必须为消费者客户分配主题以进行轮询。

另一方面,生产者根据主题(例如,一个主题的用户注册事件,以及另一个主题的用户会话期满事件)或围绕它们发送的数据的其他条件语句执行“过滤”;因此客户端过滤。

生产者最终调用send()与消费者最终调用poll()之间没有其他过滤条件,例如“服务器端”过滤。如果消费者仅对记录的子集感兴趣,则该客户必须与某个生产者达成共同协议以明确获得这些记录,否则,其他无关的记录必须被忽略或以其他方式处理。

在Kafka Streams API中,您有一个filter()操作,这也是客户端过滤。

  

哪些方法可以原生支持服务器端过滤?

我所不知道的...如果消息代理隐藏了被读取的消息,那将很奇怪

答案 1 :(得分:0)

关于服务器端过滤,我知道https://www.crankuptheamps.com/(AMPS)支持它。您可以在订阅中附加一个过滤器,并且只会收到与该过滤器匹配的邮件。不过,它不是开源的,如果这对您不大有利,请尝试一下。