Can Chronicle队列可以像RMI一样使用吗?

问题描述:

我希望我的两个JVM应用程序在同一台机器上互相对话。我考虑使用RMI,但后来我发现Chronicle Queue声称它非常快。我想知道是否可以使用Chronicle在其他JVM上调用方法并等待返回值。有没有用例呢?Can Chronicle队列可以像RMI一样使用吗?

+0

我看不到任何基于磁盘的系统如何能够更快比非基于磁盘的系统,或为什么你会认为,否则。 – EJP

+0

它使用共享内存。磁盘仅用于最终持久性。只要你有很多的RAM,并且活动时间较短,可以将脏页面刷新到磁盘上,它的速度就会非常快。 – Anonymous

这是可行的,但可能是矫枉过正(尤其是如果你不必保留请求/响应的历史记录)。想象一下两个进程的简单场景:C(客户端)和S(服务器)。创建两个IndexedChronicles:发送从C请求S

  • Q2S发送到C
  • 服务器响应

    • Q1有一个线程是轮询(忙自旋与回退)在Q1。当接收到一个请求(与id=x它的任何需要,并写出反应Q2(与id=xC民调Q2一些政策,因为他们似乎读出响应。它使用id绑到请求的响应。

      主要任务是为客户端设计一个用于串行化命令(相当于方法调用)的线级协议,这是应用程序特定的,可以通过Chronicle工具高效地完成。

      • 客户应该如何处理启动时的历史响应?
      • 一些心跳系统,使客户端知道服务器是活着的老队列
      • 归档(VanillaChronicle在一定的成本使得它更容易)
    +0

    我同意你,这是一个矫枉过正。我决定使用RMI。它使我免受你提到的许多麻烦。 – Hakan