在同一台机器上JVM之间进行通信的最快方法是使用共享内存,例如通过内存映射文件.这比使用Socket over loopback快100倍.例如,200ns往返时间与套接字的10-20微秒往返时间相比.
一种实现是Java Chronicle BTW.100 ns延迟包括消息的持久性.
无论您是否需要这些解决方案,都不应该理所当然.通常,当人们说他们必须拥有"最快"时,他们真的意味着他们不知道需要多快,所以如果他们选择最快,它应该是正确的解决方案.这通常是不正确的,因为采用最快的解决方案通常意味着在设计和实施方面做出妥协,如果只知道要求是什么,它可能永远不会需要.
简而言之,除非您有特定的,可测量的延迟和/或吞吐量要求,否则您应该假设最简单的解决方案是您真正想要的.如果你更好地理解了什么是必要的,那么当它结果不合适时,可以用更快的东西代替.