在浏览kafka文档时,我在kafka生产者中发现了许多类型的序列化,但我对如何确定任何用例的序列化感到困惑?
答案 0 :(得分:0)
我认为如果你知道序列化的作用可能会有所帮助,那么Kafka的工作方式是通过查看字节数组(byte [])的任何消息。 Kafka永远不会打开你的消息来弄清楚它的int或double或字符串,而是假定你的发送字节[]。
但为了让开发人员和消费者能够轻松开发Kafka已经定义了Serializer和Deserializer Interface,并且它们成对工作。因此,如果您知道要将Integer发布为消息,请使用IntegerSerializer将其转换为byte []并将其移交给消费者的kafka,您知道消息是使用IntegerSerializer序列化的,因此您使用IntegerDeserializer。如果你有自定义java对象,那么你必须找到一种方法(Default java或Kyro serializer)将java对象转换为生成器中的byte []和相应的Deserializer,以将byte []转换回java对象。
希望有所帮助