如何在kafka中实施模式验证

62o28rlo  于 2021-06-04  发布在  Kafka
关注(0)|答案(2)|浏览(283)

我正在使用kafka&schema注册表。在生产者端使用confluent的kafkaavroserializer定义了一个模式。一切正常。
另一方面,如果生产者在不遵循模式的情况下发布事件,那么发布事件就不会有任何问题。
Kafka只得到序列化的二进制文件,不检查数据和功能的设计工作。
想知道是否有更好的方法来实施更强大的模式验证,这样主题就不会被坏数据污染?

mjqavswn

mjqavswn1#

在创建主题时使用以下“--config”标记。它们分别对值和键执行消息模式验证。这两条规则是相互独立的;您可以启用其中一个或两个。不兼容的消息将导致客户端从kafka代理接收错误。
https://www.confluent.io/blog/data-governance-with-schema-validation/

confluent.value.schema.validation=true 
confluent.key.schema.validation=true
cygmwpex

cygmwpex2#

如果您使用的是schema registry和kafkaavroserializer,那么它将按预期工作。schema registry的重要方面是支持schema演化,其中schema可以随时间变化。每个事件都将有一个wire格式的嵌入式模式id,它将允许在使用者端反序列化事件。
但是,如果你想在写Kafka主题之前进行严格的模式验证,有两种选择-
您可以在应用程序中定义模式并使用 SpecificRecord 类型
使用API从schema registry subject获取架构,并在写入主题之前根据中的进行验证。

相关问题