2016-03-03 72 views
1

我希望我的兩個JVM應用程序在同一臺機器上互相對話。我考慮使用RMI,但後來我發現Chronicle Queue聲稱它非常快。我想知道是否可以使用Chronicle在其他JVM上調用方法並等待返回值。有沒有用例呢?Can Chronicle隊列可以像RMI一樣使用嗎?

+0

我看不到任何基於磁盤的系統如何能夠更快比非基於磁盤的系統,或爲什麼你會認爲,否則。 – EJP

+0

它使用共享內存。磁盤僅用於最終持久性。只要你有很多的RAM,並且活動時間較短,可以將髒頁面刷新到磁盤上,它的速度就會非常快。 – Anonymous

回答

1

這是可行的,但可能是矯枉過正(尤其是如果你不必保留請求/響應的歷史記錄)。想象一下兩個進程的簡單場景:C(客戶端)和S(服務器)。創建兩個IndexedChronicles:發送從C請求S

  • Q2S發送到C
  • 服務器響應

    • Q1有一個線程是輪詢(忙自旋與回退)在Q1。當接收到一個請求(與id=x它的任何需要,並寫出反應Q2(與id=xC民調Q2一些政策,因爲他們似乎讀出響應。它使用id綁到請求的響應。

      主要任務是爲客戶端設計一個用於串行化命令(相當於方法調用)的線級協議,這是應用程序特定的,可以通過Chronicle工具高效地完成。

      • 客戶應該如何處理啓動時的歷史響應?
      • 一些心跳系統,使客戶端知道服務器是活着的老隊列
      • 歸檔(VanillaChronicle在一定的成本使得它更容易)
    +0

    我同意你,這是一個矯枉過正。我決定使用RMI。它使我免受你提到的許多麻煩。 – Hakan

    相關問題