验证kafka主题消息

时间:2018-08-01 10:03:31

标签: apache-kafka

我正在与kafka一起工作,并且被要求对发送给Kafka的消息进行验证,但是我不喜欢这种解决方案,我认为这就是为什么我希望有人可以为此建议我的原因

我们有许多生产者不在我们的控制范围内,因此他们可以发送任何格式的任何消息,并且我们最多可以发送8000万条记录,并且应在2小时内处理完。 有人要求我:

  • 验证格式(Json,因为它必须与mongoDB兼容)。

  • 验证发送的某些字段。

  • 重命名一些字段

最后2个请求将使用存储在MongoDB中的参数来完成。 所有这些工作都应假设我们不是唯一一个制造消费者的公司,因此应该对我们的服务进行“简单”调用以进行此验证。 有什么想法吗?

1 个答案:

答案 0 :(得分:3)

这通常是通过Kafka Streams作业完成的。

您有生产者发送事件的“原始”输入主题。然后,Streams作业将从这些主题中读取并将有效记录写入“干净”主题中。在Streams中,您可以进行各种处理来检查记录或根据需要丰富记录。

您可能还希望将不良记录写入死信队列主题,以便您检查发生这些错误的原因。

然后,您的消费者可以阅读干净的主题,以确保他们只看到经过验证的数据。

此解决方案为记录增加了一些延迟,因为在到达消费者之前必须对其进行“处理”。您还想在靠近Kafka集群的地方​​运行Streams作业,因为它要验证的数量取决于它可能需要摄取大量数据。

另请参见Handling bad messages using Kafka's Streams API,其中详细介绍了其中一些概念。

相关问题