Chronicle Queue 可以像 RMI 一样使用吗?
Can Chronicle Queue be used like RMI?
我希望我的两个 JVM 应用程序在同一台机器上相互通信。我考虑过使用 RMI,但后来我发现 Chronicle Queue 声称它非常快。我想知道我是否可以使用 Chronicle 调用另一个 JVM 上的方法并等待 return 值。有任何用例吗?
这是可行的,但可能有点矫枉过正(特别是如果您不必保留 request/responses 的历史记录)。想象一个有两个进程的简单场景:C(客户端)和 S(服务器)。创建两个 IndexedChronicles
:
Q1
用于将请求从 C
发送到 S
Q2
用于将响应从 S
发送到 C
服务器有一个线程正在 Q1
上进行轮询(忙于回退)。当它收到一个请求时(使用 id=x
它会做任何需要的事情并写出对 Q2
的响应(使用 id=x
。C
轮询 Q2
一些策略和读出出现的响应。它使用 id
将响应与请求联系起来。
主要任务是设计一个线路级协议,用于序列化来自客户端的命令(相当于方法调用)。这是特定于应用程序的,可以使用 Chronicle 工具高效完成。
需要考虑的其他问题:
- 客户端应该如何处理启动时的历史响应?
- 一些心跳系统让客户端知道服务器是活的
- 旧队列的存档(
VanillaChronicle
以一定的成本使其更容易)
我希望我的两个 JVM 应用程序在同一台机器上相互通信。我考虑过使用 RMI,但后来我发现 Chronicle Queue 声称它非常快。我想知道我是否可以使用 Chronicle 调用另一个 JVM 上的方法并等待 return 值。有任何用例吗?
这是可行的,但可能有点矫枉过正(特别是如果您不必保留 request/responses 的历史记录)。想象一个有两个进程的简单场景:C(客户端)和 S(服务器)。创建两个 IndexedChronicles
:
Q1
用于将请求从C
发送到S
Q2
用于将响应从S
发送到C
服务器有一个线程正在 Q1
上进行轮询(忙于回退)。当它收到一个请求时(使用 id=x
它会做任何需要的事情并写出对 Q2
的响应(使用 id=x
。C
轮询 Q2
一些策略和读出出现的响应。它使用 id
将响应与请求联系起来。
主要任务是设计一个线路级协议,用于序列化来自客户端的命令(相当于方法调用)。这是特定于应用程序的,可以使用 Chronicle 工具高效完成。
需要考虑的其他问题:
- 客户端应该如何处理启动时的历史响应?
- 一些心跳系统让客户端知道服务器是活的
- 旧队列的存档(
VanillaChronicle
以一定的成本使其更容易)