预先验证发送到Kafka主题的消息

时间:2017-01-27 03:29:34

标签: java apache-kafka

是否可以验证/过滤发送到Kafka主题的消息?

就像,我想确保只有有效的客户端/生产者向我的主题发送消息。我当然可以通过根据某些参数/标准丢弃无效消息来在消费者方面进行验证。但是,如果我想在将消息写入主题之前执行该操作,该怎么办?

说,Kafka收到一条消息,执行一些验证,然后决定是否需要丢弃或将该消息写入主题。这可能吗?

1 个答案:

答案 0 :(得分:5)

简短回答 - 当前版本的Kafka不支持开箱即用的此类功能。由于Kafka生产者被设计为在单个会话期间与多个代理进行通信,因此没有简单的方法来实现这种ad-hoc过滤。 有几个合理的选择仍然存在:

  1. 使用2个主题:一个"公共"主题向所有人开放,允许所有消息,另一个非公开"过滤"主题将由您自己的应用程序填充来自" public"应用过滤规则后。
  2. 如果您在写下来之前绝对需要验证收到的消息,那么您可以隐藏某些形式的代理应用程序背后的实际Kafka代理,这将在将消息写入Kafka之前进行验证