Java Kafka Object serilizer和反序列化器

时间:2018-01-31 19:50:27

标签: java json serialization apache-kafka deserialization

我正在做卡夫卡制片人和消费者。有三种方法可以进行序列化和反序列化。

1,自定义对象 - > byte [] - >对象(example

2,自定义对象 - >字符串 - >对象(我试过。工作)

3,自定义对象 - > JsonNode - >对象(example

哪一个更好?感谢

1 个答案:

答案 0 :(得分:1)

您可以尝试基准测试,但我认为这三者基本相同。

  1. 对象 - > byte [] :在这种情况下,发生了三件事。
    1. 将对象转换为Json对象树。
    2. 树转换为字符串。
    3. 字符串转换为字节。
  2. 对象 - >字符串:在这种情况下,发生了同样的三件事。
    1. 我假设您正在使用对象映射器,它在内部构建一个Json对象树并将树转换为字符串。
    2. 我还假设您正在使用StringSerializer,它允许kafka将字符串转换为字节。
  3. 对象 - > JsonNode :同样发生了三件事。
    1. 生成Json对象树的对象映射器。
    2. JsonSerializer将树转换为字符串,将字符串转换为字节。
  4. 如果您对最大化性能感兴趣,可能希望避免使用json作为序列化机制并探索protobuf。 kafka protobuf示例是here。比较protobuf性能与json序列化的一些数字是here