RandomWits

life is too short for a diary




Understanding Kafka Deserializer

Tags: kafka

Author
Written by: Tushar Sharma
Featured image for Understanding Kafka Deserializer

In Kafka, a deserializer is responsible for converting byte arrays from kafka topic into Java Objects. Kafka provides default deserializer for standard data types like strings and integers, but you can also implement custom deserializer for complex types.

Usually you can encounter erro while consuming message from a kafka topic.

No delegate deserializer configured

This error often occurs when using the 'ErrorHandlingDeserializer' provided by Spring Kafka which acts as a wrapper around another deserializer (the delegate) to provide additional error-handling capabilities. If the delegate deserializer isn't configured properly, then 'ErrorHandlingDeserializer' cannot function correctly.

Solution

  • Ensure that both the 'ErrorHandlingDeserializer' and the delegate deserializer are correctly configured in 'application.yaml'.

  • Update the kafka consumer configuration in your Java code to use the correct deserializer classes based on the configuration.

spring:
  kafka:
    consumer:
      key-deserializer: org.springframework.kafka.support.serializer.ErrorHandlingDeserializer
      value-deserializer: org.springframework.kafka.support.serializer.ErrorHandlingDeserializer
      properties:
        spring.deserializer.key.delegate.class: org.apache.kafka.common.serialization.StringDeserializer
        spring.deserializer.value.delegate.class: org.apache.kafka.common.serialization.StringDeserializer

We can update our consumer to read those properties


comments powered by Disqus