Как вы должны знать, сообщения Kafka (Brokers) - это массивы байтов (ключи, значения).
KafkaProducer, KafkaConsumer и KafkaStreams должны знать, как писать и читать сообщения - преобразовать их из POJO вмассив байтов и наоборот.
Для этой цели используются org.apache.kafka.common.serialization.Serializer
и org.apache.kafka.common.serialization.Deserializer
. KafkaProducer использует Serializer
- для преобразования Key
и Value
в массив байтов, а KafkaConsumer использует Deserializer
для преобразования массива байтов в Key
и Value
. Приложения KafkaStreams выполняют как запись действий, так и чтение (в / из темы), и для этого org.apache.kafka.common.serialization.Serdes
- это своего рода оболочка для Serializer
и Deserializer
.
В вашем примере :
LongSerializer
- это класс, который должен использоваться для перевода Long
в массив байтов LongSerde
- это класс, который должен использоваться вПриложение Kafka Streams для чтения и записи Long (под капотом используется LongSerializer
и LongDeserializer
)
Дополнительное чтение: