Apache Kafka & Stream Processing Fundamentals · Aula

Serdes e serialização de dados no Kafka Streams

Aprenda como o Kafka Streams usa Serdes para serializar e desserializar chaves e valores, e como configurar Serdes padrão e específicos para cada operação.

Aula 4 de 413 etapas

Serdes e serialização de dados no Kafka Streams é uma aula grátis de Apache Kafka & Stream Processing Fundamentals no CoddyKit. Esta é a aula 4 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Apache Kafka & Stream Processing Fundamentals, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Apache Kafka & Stream Processing Fundamentals inclui 4 aulas no total.

Partes desta aula ainda não foram traduzidas e aparecem em inglês.

What Is a Serde?

A Serde is a combined Serializer and Deserializer. Kafka Streams uses it to convert between your Java objects and the bytes stored in Kafka.

Every key and value flowing through a topology needs a Serde.

Why Streams Needs Serdes Everywhere

Unlike a plain consumer, Kafka Streams writes intermediate results back to Kafka (for repartitioning and state).

So it must know how to serialize data not just on input/output, but at every shuffle and store — hence Serdes appear throughout the API.

Built-in Serdes

The Serdes factory class provides ready-made Serdes for common types.

Serde<String> stringSerde = Serdes.String();
Serde<Long> longSerde = Serdes.Long();
Serde<byte[]> bytesSerde = Serdes.ByteArray();

Default Serdes

You can set default key and value Serdes in the Streams config so you don't repeat them everywhere.

Properties props = new Properties();
props.put(StreamsConfig.DEFAULT_KEY_SERDE_CLASS_CONFIG,
    Serdes.String().getClass());
props.put(StreamsConfig.DEFAULT_VALUE_SERDE_CLASS_CONFIG,
    Serdes.String().getClass());

Overriding Per Operation

When a specific stream uses a different type, override the default with Consumed, Produced, or Materialized.

KStream<String, Long> counts = builder.stream(
    "counts-topic",
    Consumed.with(Serdes.String(), Serdes.Long()));

Custom JSON Serde

For domain objects, a common choice is a JSON Serde that maps a class to and from JSON bytes.

// Conceptual JSON value Serde for an Order POJO
Serde<Order> orderSerde = new JsonSerde<>(Order.class);

KStream<String, Order> orders = builder.stream(
    "orders",
    Consumed.with(Serdes.String(), orderSerde));

Avro & Schema Registry Serdes

For schema-governed data, use the Confluent SpecificAvroSerde or GenericAvroSerde.

  • They register and look up schemas in Schema Registry.
  • They enforce compatibility as your data evolves.

Serdes and Repartitioning

Operations like selectKey or groupBy trigger a repartition through an internal topic.

Kafka Streams needs valid key/value Serdes at that point — a missing or wrong Serde here is a frequent source of runtime errors.

Serdes for State Stores

Stateful operations materialize results into a store backed by a changelog topic.

KTable<String, Long> totals = orders
    .groupByKey()
    .count(Materialized.with(Serdes.String(), Serdes.Long()));

Common Serde Errors

Watch for these pitfalls:

  • ClassCastException — the default Serde doesn't match the actual type.
  • SerializationException — bytes don't match the deserializer (wrong topic data).
  • Forgetting to override the Serde after changing the value type.

Best Practices

Keep serialization sane:

  • Set sensible defaults, override only when types change.
  • Use Schema Registry Serdes for evolving data contracts.
  • Make custom Serdes null-safe.
  • Match Serde types exactly at repartition and store boundaries.

Quick Check

Test your understanding of Serdes.

Recap

You learned how Serdes drive serialization in Kafka Streams.

  • A Serde bundles a serializer and deserializer.
  • Set defaults in config; override with Consumed/Produced/Materialized.
  • Use JSON or Avro/Schema Registry Serdes for domain objects.
  • Mismatched Serdes are a top cause of runtime errors.
Grátis para começar

Aprenda Apache Kafka & Stream Processing Fundamentals com um tutor de IA — grátis

Escreva e execute código real no seu navegador, obtenha ajuda instantânea de um tutor de IA 24/7 e continue de onde parou na web ou no app.

Cursos
12
Aulas
48

Perguntas Frequentes

A aula “Serdes e serialização de dados no Kafka Streams” é grátis?

Sim — o texto completo de “Serdes e serialização de dados no Kafka Streams” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Apache Kafka & Stream Processing Fundamentals, atualize para CoddyKit PRO. O curso de Apache Kafka & Stream Processing Fundamentals inclui 4 aulas no total.

O que vou aprender em “Serdes e serialização de dados no Kafka Streams”?

Aprenda como o Kafka Streams usa Serdes para serializar e desserializar chaves e valores, e como configurar Serdes padrão e específicos para cada operação. Você pratica Apache Kafka & Stream Processing Fundamentals com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar Apache Kafka & Stream Processing Fundamentals?

Nenhuma experiência prévia é necessária. Apache Kafka & Stream Processing Fundamentals no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 4 de 4.

Quanto tempo leva a aula “Serdes e serialização de dados no Kafka Streams”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de Apache Kafka & Stream Processing Fundamentals?

Sim. Cada aula de Apache Kafka & Stream Processing Fundamentals inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. Construindo uma aplicação simples com Kafka Streams
  2. Conceitos de KStream e KTable
  3. Operações sem estado versus com estado
  4. Serdes e serialização de dados no Kafka Streams
← Voltar para Apache Kafka & Stream Processing Fundamentals