Apache kafka 如何在kafka中实施模式验证

Apache kafka 如何在kafka中实施模式验证,apache-kafka,confluent-platform,confluent-schema-registry,Apache Kafka,Confluent Platform,Confluent Schema Registry,我正在使用Kafka&Schema注册表。在生产者端使用confluent的KafkaAvroSerializer定义了一个模式。一切正常 另一方面,如果生产者在不遵循模式的情况下发布事件,那么发布事件时不会出现任何问题 了解Kafka只获取序列化的二进制文件,不检查数据,功能按设计工作 想知道是否有更好的方法来实施更强大的模式验证,从而使主题不受坏数据的污染?如果您使用的是模式注册表和KafkaAvroSerializer,它会按预期工作。Schema registry的重要方面是支持模式演化

我正在使用Kafka&Schema注册表。在生产者端使用confluent的KafkaAvroSerializer定义了一个模式。一切正常

另一方面,如果生产者在不遵循模式的情况下发布事件,那么发布事件时不会出现任何问题

了解Kafka只获取序列化的二进制文件,不检查数据,功能按设计工作


想知道是否有更好的方法来实施更强大的模式验证,从而使主题不受坏数据的污染?

如果您使用的是模式注册表和KafkaAvroSerializer,它会按预期工作。Schema registry的重要方面是支持模式演化,其中模式可以随时间而变化。每个事件都有一个Wire格式的嵌入式模式ID,该ID允许在使用者端反序列化事件

但在这种情况下,如果您想在写入卡夫卡主题之前进行严格的模式验证,有两种选择-

  • 您可以在应用程序中定义模式,并使用
    specificred
    type
  • 使用API从模式注册表主题获取模式,并在写入主题之前根据中的进行验证 创建主题时使用以下“-config”标记。它们分别对值和键执行消息模式验证。这两条规则是相互独立的;您可以启用其中一个或两个。不符合要求的消息将导致客户端收到来自kafka代理的错误


    嗨@Sahas-你找到这个问题的解决方案了吗?Avro和Json模式也面临同样的问题。如果你找到了一个解决方案,你能分享一下吗?
    confluent.value.schema.validation=true 
    confluent.key.schema.validation=true