【问题标题】:Using loopback interface for communicating between production application使用环回接口在生产应用程序之间进行通信
【发布时间】:2015-08-18 12:37:04
【问题描述】:

我正在 Ubuntu 服务器上开发 2 个应用程序,它们需要通过 UDP 以大约 200 Mbps 的峰值速度相互通信。在初始阶段,我计划将两个应用程序部署在通过环回地址进行通信的同一台服务器上。

我对此设置有 2 个顾虑。非常感谢任何帮助。

  1. 使用环回接口在 2 个应用程序之间进行通信是一种好习惯吗?
  2. 环回接口可实现的最大吞吐量是否存在性能限制。

【问题讨论】:

    标签: linux loopback-address


    【解决方案1】:

    使用环回 (127.0.0.1) 接口通常是网络启用/感知应用程序的开发(调试)增量。如果您仅将环回接口用作 IPC(进程间通信)工具,我会“挑眉”。此外,数据吞吐量(200 Mbps 峰值关注)不传输(通过 OSI 物理层),而是在网络层内“翻转”。对于您的(两个)问题:

    1. 在调试网络感知/启用应用程序的上下文中,这是在同一设备上测试两个客户端/服务器的首选方法。对于 IPC 的一种方法,它增加了进程之间编组数据的不必要开销,所以如果这是您想要的目标,我会查看您的操作系统本地 IPC 机制(因为这通常转换为内存映射文件以跨越进程边界;哪个可以有效地配置为驻留内存并且非常快)。

    2. 性能将取决于您的 UDP 设计。有效负载的大小、消息的结构、队列管理等。当然,您将处理正常的网络堆栈开销(但如果实施得当且适用,您的 IPC 机制的开销会更少)。

    如果您正在寻找特定的代码片段,或者这只是一个一般性问题(正如我所读的那样),请告诉我。希望这会有所帮助。

    【讨论】:

    • 谢谢...我选择了 UNIX 套接字
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-26
    • 1970-01-01
    • 2011-07-29
    • 2018-11-19
    • 1970-01-01
    相关资源
    最近更新 更多