带有选择器的 Apache Kafka 客户端?

Mag*_*ick 5 apache-kafka

我正在研究 Apache Kafka,我的用例要求客户端能够过滤消息,并且过滤发生在代理上,而不是客户端。此要求与使用 JMS 选择器相同。

我的理解是,虽然我可能不正确,但 Kafka 没有选择器,过滤是在客户端完成的。所以所有的消息都发送给客户端,客户端负责过滤。

无论如何要实现 JMS Selector 方法,过滤发生在代理上?

ser*_*jja 4

不,你不能做那样的事。您能做的最好的事情就是在客户端进行过滤。Apache Kafka API 仅支持“从偏移量 X 开始,为主题 N 分区 M 提供最多 1 MB 的消息”的获取。

您可以参考Wire Protocol 参考来查看提取请求的可能选项,但它不包含您正在查找的任何内容。

实际上,Kafka 之所以那么快,是因为每次获取都只是顺序读取,所以我认为这不会在未来的版本中实现(但如果我错了,我会很高兴:))。