反序列化
和生产者端的序列化器类似,消费者端对应的是反序列化器。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()); |