我非常喜歡通過調用Java的RMI遠程方法的簡單,但它的序列化格式的詳細程度是一個主要的嗡嗡聲殺(是的,我已經爲基準,謝謝)。看起來,Sun的架構師在設計RPC(鬆散地說)組件時做了明顯的正確的事情,但是在實現序列化時拉大了史詩般的失敗。相反,看起來Thrift,Avro,Kryo(尤其是),協議緩衝區(不是那麼多)的架構師,等等。在設計他們的序列化格式時通常做了明顯的正確的事情,但要麼不提供RPC機制,提供一個是不必要的曲(或未成熟的),否則一個是朝比調用遠程方法的數據傳輸更爲適合(用於多種用途完全正常的,但不是我要找的)。我可以(輕鬆地)使用第三方庫來處理Java RMI的序列化嗎?
因此,顯而易見的問題是:我如何使用RMI的方法調用可愛,但是將以上庫中的一個用於wire協議?這可能沒有很多工作?我在評估上述庫過於嚴厲(NB我很討厭代碼生成,一般的一個;我不喜歡不必要的註解一些,和XML配置相當多的;任何形式的「豆」的讓我畏縮 - 我不需要重量;理想情況下,我正在爲我的遠程對象實現一個接口,就像RMI一樣)。
我認爲你提到的許多libs(但不是Kryo)的主要挑戰是它們需要Schema的定義,這使得通用use-any-POJO RPC變得困難或不可能。 – StaxMan 2011-02-02 21:53:16
快速序列化是一種兼容JDK序列的重新實現。但是,不確定是否有必要的鉤子來替換ObjectXXXputStream類。 https://github.com/RuedigerMoeller/fast-serialization – 2014-11-12 11:57:46