Java Kafka Объект сериализатор и десериализатор
Я занимаюсь производством и потреблением кафки. Есть три способа сделать сериализацию и десериализацию.
1, пользовательский объект -> byte[] -> объект ( пример)
2, пользовательский объект -> String -> объект (я пытался. Работает)
3, пользовательский объект -> JsonNode -> объект ( пример)
Какой из них лучше? Спасибо
1 ответ
Решение
Вы можете попробовать сравнительный анализ, но я думаю, что все они примерно одинаковы.
- Object -> byte []: в этом случае происходят три вещи.
- Объект преобразуется в дерево объектов Json.
- Дерево преобразуется в строку.
- Строка преобразуется в байты.
- Object -> String: в этом случае происходят три одинаковые вещи.
- Я предполагаю, что вы используете объект сопоставления, который строит дерево объектов Json внутри и преобразует дерево в строку.
- Я также предполагаю, что вы используете StringSerializer, который позволяет kafka преобразовать строку в байты.
- Object -> JsonNode: опять же происходят три вещи.
- Объектный картограф в создании дерева объектов Json.
- JsonSerializer преобразует дерево в строку, а строку в байты.
Если вы заинтересованы в максимизации производительности, вы можете не использовать json в качестве механизма сериализации и исследовать protobuf. Пример с kafka protobuf находится здесь. Некоторые цифры, сравнивающие производительность protobuf с сериализацией json, приведены здесь.