反序列化
和生产者端的序列化器类似,消费者端对应的是反序列化器。Kafka 中反序列化器实现的都是 Deserializer 接口,默认实现有:
- ByteBufferDeserializer
- BytesDeserializer
- DoubleDeserializer
- FloatDeserializer
- IntegerDeserializer
- LongDeserializer
- ShortDeserializer
- StringDeserializer
反序列化 Deserializer 接口也和 Serializer 接口一样,需要实现三个方法
| 1 | public interface Deserializer<T> extends Closeable { | 
常用的 StringDeserializer  
| 1 | public class StringDeserializer implements Deserializer<String> { | 
自定义反序列化器 PersonDeserializer :
| 1 | package kafka.serializer; | 
使用反序列化器只需要在 consumer 的配置中加上即可。需要注意的是,consumer 端的反序列化器需要和 producer 端的序列化器解耦,不然无法正常消费。同时,如果有拦截器的话,那么需要注意拦截器中的操作,不能使得序列化器无法序列。
| 1 | prop.put(ConsumerConfig.VALUE_DESERIALIZER_CLASS_CONFIG, PersonDeserializer.class.getName()); |