繁体   English   中英

为什么Kafka无法使用Java Serializable接口

[英]Why Kafka cannot use Java Serializable interface

在普通的Java中,如果我使用Serializable接口实现一个类,则Java将负责序列化该类的实例,反之亦然。 如果使用Kafka,为什么我们需要提供单独的Serializer和Deserializer类? 如果该类实现Serializable,为什么Kafka不能使用与Java Runtime Engine相同的机制来对实例进行序列化和反序列化? 你能解释一下吗?

为了回答您的问题,Kafka利用了单独的Serializer和Deserializer类,因此应用程序可以选择要使用的序列化格式。 这是增加灵活性的可插入方法。

Kafka确实提供了两个默认的序列化器,即字节和字符串解串器,因为您注意到它们都不利用Java序列化。 正如其他评论提到的那样,当编写器和读取器应用程序紧密耦合,使用相同版本的Java等时,经常会看到Java序列化。在无法做出这些假设的环境中,它的问题变得更加明显。 使用了类似Kafka的环境。Kafka还存在在其API中支持其他编程语言的问题。

如果这是硬性要求,则可以使用默认的字节解串器从Java读取消息作为字节,并对这些消息进行后处理。 您要编写的消息将是与Java序列化对象相对应的字节字符串。 基本上,这仅使用Kafka作为字节传递。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM