我想知道我们可以在Kafka中以某种方式进行服务器端过滤吗?有哪些替代方法可本地支持服务器端过滤?我的意思是Kafka可以向客户端提供特定的消息,以避免在客户端进行过滤吗?
答案 0 :(得分:0)
Kafka可以向客户端提供特定消息
Kafka不是基于推送的系统;它不“提供消息”。必须为消费者客户分配主题以进行轮询。
另一方面,生产者根据主题(例如,一个主题的用户注册事件,以及另一个主题的用户会话期满事件)或围绕它们发送的数据的其他条件语句执行“过滤”;因此客户端过滤。生产者最终调用send()
与消费者最终调用poll()
之间没有其他过滤条件,例如“服务器端”过滤。如果消费者仅对记录的子集感兴趣,则该客户必须与某个生产者达成共同协议以明确获得这些记录,否则,其他无关的记录必须被忽略或以其他方式处理。
在Kafka Streams API中,您有一个filter()
操作,这也是客户端过滤。
哪些方法可以原生支持服务器端过滤?
我所不知道的...如果消息代理隐藏了被读取的消息,那将很奇怪
答案 1 :(得分:0)
关于服务器端过滤,我知道https://www.crankuptheamps.com/(AMPS)支持它。您可以在订阅中附加一个过滤器,并且只会收到与该过滤器匹配的邮件。不过,它不是开源的,如果这对您不大有利,请尝试一下。