簡體   English   中英

Java中的部分反序列化和序列化?

[英]Partial deserialization and serialization in Java?

有大量的庫和方法可以在Java中對對象進行序列化和反序列化。 我想做的事情涉及相當大和復雜的對象,這些對象需要在處理節點之間來回發送。

但是,每個節點只對整個對象的一個​​或幾個(通常是一小部分)感興趣。 處理節點處理該零件並創建一個新零件,在發送該零件之前,需要將其拼接到現有的序列化對象中。

為此,兩件事非常重要:

  • 能夠僅反序列化序列化對象的部分(從而節省解析/反序列化時間,對象創建時間,內存...),並且還可以將一些新部件的序列化添加到現有的序列化對象中(再次節省時間和內存) -跳過序列化版本中不需要的部分應該非常快速和高效,並且理想情況下應該可以在流模式下進行,而無需立即將整個序列化數據保留在內存中
  • 整體緊湊,快速的序列化和反序列化。

對於實際創建類型化的對象與未類型化的映射和列表所獲得的自動化程度,我相當靈活:如果所有其他方法均失敗,我將能夠將整個對象表示為僅包含映射,數組和基本數據類型布爾值的嵌套數據結構,字符串和數字。

更新:忘記提及另外兩個非常重要的要求:

  • 現有對象必須有可能的解決方案,即不可能使用例如不同的collections類來重新實現當前對象。

  • 理想情況下,該解決方案應基於開源軟件,因為我需要此軟件的軟件將以開源形式發布。

聽起來您正在計划一個設計,在該設計中將一堆數據發送到處理節點,而該節點將僅讀取/修改/寫入其中的一小部分。 但是隨后會將整個捆綁發送到另一個節點。

為什么沒有擁有所有數據的主機找出哪個節點需要哪些數據,而僅發送該數據? 然后,處理可以並行發生,而不是菊花鏈。 而且您的總網絡流量將少於發送所有內容的完整副本的每個節點:O(n * m)。

可能需要設計自己的消息格式,可能基於JSON,二進制或其他內容。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM