【问题标题】:IPC Suggestion for lots of small data [closed]针对大量小数据的 IPC 建议 [关闭]
【发布时间】:2012-04-17 11:15:06
【问题描述】:

我们将实施一个多进程软件,我们正在寻找合适的 IPC。

事实:

  • 我们将使用 Java(如果遇到时间紧迫的问题,我们将使用 C)
  • 所有进程都在一台 Unix 机器上。
  • 进程每秒相互发送大量(大约 1000 个)小(大约 4k)数据。

您推荐什么 IPC 技术? Web 服务、RMI、TCP 套接字、Unix 套接字、管道……?

【问题讨论】:

  • @JeremiahWillcock(只是因为它是“作为离题者关闭”列表中的第一个名称,并且只能通知一个用户)或任何人:SE 网络中是否有另一个站点存在此问题可以问吗? (我已经知道它不能在软件推荐中)。我需要问基本相同的问题。
  • This question 可能很有用,因为它在问同样的事情——除了“小数据”部分——它得到了几个答案。我不确定为什么这个是题外话而那个不是,但是虽然那个有点旧,但它有我在找到这个时正在寻找的信息。
  • Web 服务是建立在 TCP 之上的,所以我将忽略“web”部分并简单地指出 TCP 是多余的。它为更高层协议提供的大多数服务(流量控制、拥塞控制、按顺序交付、可靠性、进程寻址)都假设一个不可靠的底层通道。在本地连接的情况下,大部分开销都是不必要的。 IP 提供的服务是不必要的,因为您实际上并不需要多个 NIC 进行通信。编写 UNIX 套接字以提供类似 TCP 的功能,而无需实际网络会话的开销。
  • 这将我们带到了 RMI、Unix 套接字、管道和共享内存映射(使用信号量或者——如果你真的很聪明——无锁并发数据结构)。
  • 然而,在我们开始分析这些之前,值得快速检查一下……您是在使用多个进程而不是 JNI,还是它们是多个 Java + C 混合进程一起工作?

标签: java ipc rmi multiprocessing


【解决方案1】:

以上都可以做到这一点。 1000/s 不算多(即使是 4 KB)

我会将 Active MQ 和 ZeroMQ 添加到列表中。

我会使用https://github.com/peter-lawrey/Java-Chronicle 为什么?因为我写的。 ;) 你可以试试别的。

【讨论】:

    猜你喜欢
    • 2010-09-17
    • 2013-06-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多