【问题标题】:What is the fastest way to connect two Java processes on the same physical machine?在同一台物理机器上连接两个 Java 进程的最快方法是什么?
【发布时间】:2016-03-22 13:36:42
【问题描述】:

我的 Java 应用程序中有一个很大的内存缓存,它在应用程序启动后被填充。这使得重新部署非常昂贵,并且减慢了开发过程。

为了解决这个问题,我想将缓存外包给一个单独的 Java 进程。在 Linux 上连接两个 Java 进程的最快方法是什么?

【问题讨论】:

  • 在它们之间创建Socket 连接
  • @ControlAltDel,OP 有 large 内存缓存
  • 您使用的是哪种缓存?是第三方还是只是地图?
  • @AlexR 我没有收到你的评论。我知道 OP 有一个很大的内存缓存。但是为什么你认为使用套接字连接两个进程不是一个好的解决方案呢?
  • @ControlAltDel,你说得对,在低级别它是套接字。但是 OP 可能不想自己实现套接字级代码。此外,可能在访问每一块大缓存时使用套接字是非常无效的,所以他可能需要更高级别的“更智能”的解决方案/库。

标签: java linux memory networking


【解决方案1】:

作为最快的解决方案,我建议您使用Hazelcast。它们支持分布式地图。您可以定义简单的 2 节点集群,因此当您的两个进程都启动时,数据将被共享,当其中一个进程关闭时,数据仍将保留在专用进程的内存中,当主进程再次启动时,数据将被共享将再次分享。

您必须在代码中更改的唯一内容是创建地图实例的行。您必须使用 Hazelcast API 而不是 new HashMap<>()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-07-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-09
    • 1970-01-01
    • 1970-01-01
    • 2014-01-20
    相关资源
    最近更新 更多