Serialization Avro-JSON/二进制序列化的优缺点

Serialization Avro-JSON/二进制序列化的优缺点,serialization,apache-kafka,avro,Serialization,Apache Kafka,Avro,我最近开始使用ApacheAvro,并希望序列化我的卡夫卡主题。现在我已经读到Avro同时提供Json和二进制序列化。有什么优点和缺点吗?二元解不是更好吗 亲切问候,, nika这取决于你在寻找什么: 二进制-更小的数据和更快的序列化 JSON-适用于调试和基于web的应用程序 请注意,JSON模式在任何情况下都会被传输。JSON模式并非以所有二进制格式传输。即使在Avro中,如果使用schema Registry,也不会。Confluent提供的现有Avro序列化程序不提供JSON Avr

我最近开始使用ApacheAvro,并希望序列化我的卡夫卡主题。现在我已经读到Avro同时提供Json和二进制序列化。有什么优点和缺点吗?二元解不是更好吗

亲切问候,,
nika

这取决于你在寻找什么:

  • 二进制-更小的数据和更快的序列化
  • JSON-适用于调试和基于web的应用程序

请注意,JSON模式在任何情况下都会被传输。

JSON模式并非以所有二进制格式传输。即使在Avro中,如果使用schema Registry,也不会。Confluent提供的现有Avro序列化程序不提供JSON Avro编码。可能需要考虑的是,Avro附带了C/C++/C#的库(以及其他库)。这使得它比普通的旧JSON更易于互操作。支持JSON的理由是,JSON模式可以表示大小和值约束,这是一个像样的JSON验证器应该遵守的。这使它成为一个更完整的序列化,因为您可以设置数组大小和数字值的限制,并且检查是自动的且无错误的。我认为Avro的IDL不支持约束,所以这种限制必须通过其他一些容易出错的方式在开发人员之间传递。