簡體   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