1

我希望我的两个 JVM 应用程序在同一台机器上相互通信。我考虑过使用 RMI,但后来我发现Chronicle Queue声称它非常快。我想知道是否可以使用 Chronicle 调用另一个 JVM 上的方法并等待返回值。有什么用例吗?

4

1 回答 1

1

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

  • Q1用于发送请求CS
  • Q2用于发送S响应C

服务器有一个正在轮询(忙于回退)的线程Q1。当它接收到一个请求时(id=x它会做任何需要的事情并写出响应Q2(使用id=x. CpollsQ2和一些策略并在响应出现时读出响应。它使用id将响应与请求联系起来。

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

另一个需要考虑的问题:

  • 客户应该如何处理启动时的历史响应?
  • 一些心跳系统,以便客户端知道服务器还活着
  • 归档旧队列(VanillaChronicle以一定成本使其更容易)
于 2016-04-06T10:41:52.820 回答