Kafka Serde корпус класса - PullRequest
       0

Kafka Serde корпус класса

0 голосов
/ 13 февраля 2019

Я хотел бы создать магазин StoreBuilder[KeyValueStore[String, TimedGenericRecord]] с case class TimedGenericRecord(record: GenericRecord, timestamp: Long).

Поэтому мне нужно создать Serde[TimedGenericRecord].

Для GenericRecord Кафка уже предоставляетSerde, то же самое для Long.Есть ли способ создать Serde для класса case и использовать те, которые предоставляют Serdes?Поскольку в текущей настройке кажется, что вы можете десериализовать только полный byte[], что не позволяет вам повторно использовать предоставленные Serdes.

1 Ответ

0 голосов
/ 14 февраля 2019

Получено из ответа из канала Confluent Slack:

В вашем случае вы знаете, что long сериализуется до 8 байтов - таким образом, вы копируете inputBytes[0] в inputBytes[inputBytes.lenght - 8]в новый байтовый массив, который вы даете AvroDeserializer, и копируете последние 8 байтов и даете LongDeserializer.На пути сериализации вы сериализуете avro и long, а затем объединяете оба в один байтовый массив, который вы возвращаете.

...