在浏览kafka文档时,我在kafka producer中发现了许多类型的序列化,但是我对如何确定任何用例的序列化感到困惑?
mwecs4sa1#
我认为,如果您知道序列化的作用可能会有所帮助,那么kafka的工作方式就是用字节数组(byte[])来查看任何消息。kafka从不打开消息来判断它是int、double还是string,而是假设发送字节[]。但为了便于生产者和消费者的开发,kafka定义了序列化器和反序列化器接口,它们成对工作。因此,如果您知道要将integer发布为消息,请使用integerserializer,integerserializer将其转换为byte[]并移交给使用者上的kafka,您知道消息是使用integerserializer序列化的,因此您使用integerdeserializer。同样,如果您有定制的java对象,那么您必须找到一种方法(默认java或kyro序列化程序)将java对象转换为producer中的byte[],并使用相应的反序列化程序将byte[]转换回java对象。希望有帮助
1条答案
按热度按时间mwecs4sa1#
我认为,如果您知道序列化的作用可能会有所帮助,那么kafka的工作方式就是用字节数组(byte[])来查看任何消息。kafka从不打开消息来判断它是int、double还是string,而是假设发送字节[]。
但为了便于生产者和消费者的开发,kafka定义了序列化器和反序列化器接口,它们成对工作。因此,如果您知道要将integer发布为消息,请使用integerserializer,integerserializer将其转换为byte[]并移交给使用者上的kafka,您知道消息是使用integerserializer序列化的,因此您使用integerdeserializer。同样,如果您有定制的java对象,那么您必须找到一种方法(默认java或kyro序列化程序)将java对象转换为producer中的byte[],并使用相应的反序列化程序将byte[]转换回java对象。
希望有帮助