2015-06-28 41 views
7

我的用例:2015年Java進程間通信(沒有鍋爐板)?

  • 過程-1 「數據庫」 加載> 1GB從數據文件(只是裝載需要30-60秒)
  • 過程-2 「客戶端」 的數據到存儲器中的想要快速訪問數據而無需全部加載

它們是在同一臺計算機上運行的單獨進程。我想在這些過程之間傳輸的數據是包含原始類型(整數,字符串,布爾值)的集合(列表,地圖)。

我知道這可以通過打開套接字(在串行化數據時創建一些特定協議)或通過RMI(或多或少是相同的事情)來完成。我們在15年前就已經完成了這兩項工作。現在還沒有人自動化,所以通過使用一些庫,您可以設置@InterProcessMethod("some", "details")並且能夠在不同的JVM上調用方法,而無需每次都實現序列化等等。 (因爲主要類型,這不應該太複雜)。

一家名爲Caucho的公司曾經有一些產品來解決這個問題,但我無法從他們的網頁上找到它。再說一遍,這是一種Web服務,而不是RPC。

+0

好的,我喜歡這個問題。 – Mordechai

+3

不,他們沒有......因爲這個問題比你想像的更復雜。 –

+0

一個很好的問題。然而,無論如何。 – CKing

回答

0

不是我現在的。更多的「2015」將留在RMI中,或者將您的後端重構爲REST API並通過JSON進行連接,然後,如果需要,可以使用Jackson或甚至手動對其進行序列化/反序列化(在一些面向性能場景)。