Serdes y serialización de datos en Kafka Streams
Aprenda cómo Kafka Streams usa Serdes para serializar y deserializar claves y valores, y cómo configurar Serdes predeterminados y específicos para cada operación.
Serdes y serialización de datos en Kafka Streams es una lección gratuita de Apache Kafka & Stream Processing Fundamentals en CoddyKit. Esta es la lección 4 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Apache Kafka & Stream Processing Fundamentals, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Apache Kafka & Stream Processing Fundamentals incluye 4 lecciones en total.
Partes de esta lección aún no han sido traducidas y se muestran en 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.
Aprende Apache Kafka & Stream Processing Fundamentals con un tutor de IA — gratis
Escribe y ejecuta código real en tu navegador, obtén ayuda instantánea de un tutor de IA disponible 24/7 y continúa donde lo dejaste en la web o en la aplicación.
- Cursos
- 12
- Lecciones
- 48
Preguntas frecuentes
¿La lección «Serdes y serialización de datos en Kafka Streams» es gratis?
Sí — el texto completo de «Serdes y serialización de datos en Kafka Streams» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Apache Kafka & Stream Processing Fundamentals, actualiza a CoddyKit PRO. El curso de Apache Kafka & Stream Processing Fundamentals incluye 4 lecciones en total.
¿Qué aprenderé en «Serdes y serialización de datos en Kafka Streams»?
Aprenda cómo Kafka Streams usa Serdes para serializar y deserializar claves y valores, y cómo configurar Serdes predeterminados y específicos para cada operación. Practicas Apache Kafka & Stream Processing Fundamentals con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.
¿Necesito experiencia previa para empezar Apache Kafka & Stream Processing Fundamentals?
No se requiere experiencia previa. Apache Kafka & Stream Processing Fundamentals en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 4 de 4.
¿Cuánto tiempo toma la lección «Serdes y serialización de datos en Kafka Streams»?
La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.
¿Puedo escribir y ejecutar código en esta lección de Apache Kafka & Stream Processing Fundamentals?
Sí. Cada lección de Apache Kafka & Stream Processing Fundamentals incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.
Todas las lecciones de este curso
- Creación de una aplicación sencilla con Kafka Streams
- Conceptos de KStream y KTable
- Operaciones sin estado y con estado
- Serdes y serialización de datos en Kafka Streams