4

kafka生产者消息序列化

 2 years ago
source link: https://huagetai.github.io/posts/fdfb7393/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

kafka生产者消息序列化

发表于 2019-10-13 更新于 2019-10-19 分类于 kafka Valine: 0
本文字数: 994 阅读时长 ≈ 2 分钟

kafka消息序列化和反序列化

生产者需要用序列化器把对象转换成字节数组才能通过网络发送给Kafka集群。而在另一端,消费者需要用相应的反序列化器把从Kafka集群收到的字节数组转换成相应的对象才能做后续处理。

001.png

Serializer是Kafka提供的序列化接口:

default void configure(Map<String, ?> configs, boolean isKey) 
byte[] serialize(String topic, T data)
default byte[] serialize(String topic, Headers headers, T data)
default void close()

Deserializer是Kafka提供的反序列化接口:

default void configure(Map<String, ?> configs, boolean isKey) 
deserialize(String topic, byte[] data)
default T deserialize(String topic, Headers headers, byte[] data)
default void close()

序列化和反序列化接口中,serialize方法和deserialize方法分别用于执行序列化和反序列化操作。close方法一般是空的不需要重写,如果要实现该方法,必须确保此方法是幂等的,它可能会被调用多次.

生产者常用的序列化器有:StringSerializer、UUIDSerializer、ByteArraySerializer、ByteBufferSerializer、BytesSerializer、DoubleSerializer、FloatSerializer、IntegerSerializer、LongSerializer、ShortSerializer;消费者常用的反序列化器和上面的生产者常用序列化器一一对应。比如:StringDeserializer、UUIDDeserializer等等

当常用的无法满足需求时,可以使用Avro、JSON、Thrift、ProtoBuf、Protostuff等等通用的序列化工具来实现。Spring Kafka项目就提供了JsonSerializer和JsonDeserializer的实现。

什么是序列化和反序列化


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK