使用环回接口在生产应用程序之间进行通信
Using loopback interface for communicating between production application
我正在 Ubuntu 服务器上开发 2 个应用程序,这些应用程序需要通过 UDP 以大约 200 Mbps 的峰值相互通信。在初始阶段,我计划将这两个应用程序部署在通过环回地址通信的同一台服务器上。
我对这个设置有 2 个顾虑。非常感谢任何帮助。
- 使用环回接口在 2 个应用程序之间进行通信是一种好习惯吗?
- 环回接口可达到的最大吞吐量是否存在性能限制。
使用环回 (127.0.0.1) 接口通常是网络 enabled/aware 应用程序的开发(调试)增量。如果您仅将环回接口用作 IPC(进程间通信)工具,我会 "raise an eyebrow"。此外,数据吞吐量(200 Mbps 峰值问题)不传输(通过 OSI 物理层)并且在网络层内为 "turned around"。对于您的(两个)问题:
在调试网络 aware/enabled 应用程序的上下文中,这是在同一设备上测试客户端/服务器的首选方法。对于 IPC 的一种方式,它增加了不必要的开销以在进程之间编组数据,所以如果这是你想要的 objective,我会看看你的 OS- 本地 IPC 机制(因为这通常转化为内存 -将文件映射到跨进程边界;可以有效地将其配置为内存驻留且速度非常快)。
性能将与您的 UDP 设计相关。有效负载的大小、消息的结构、队列管理等。当然,您将处理正常的网络堆栈开销(但如果实施得当且适用,IPC 机制的开销会更少)。
如果您正在寻找特定的代码片段,或者这只是一个普遍的问题(正如我读到的那样),请告诉我。希望这有帮助。
我正在 Ubuntu 服务器上开发 2 个应用程序,这些应用程序需要通过 UDP 以大约 200 Mbps 的峰值相互通信。在初始阶段,我计划将这两个应用程序部署在通过环回地址通信的同一台服务器上。
我对这个设置有 2 个顾虑。非常感谢任何帮助。
- 使用环回接口在 2 个应用程序之间进行通信是一种好习惯吗?
- 环回接口可达到的最大吞吐量是否存在性能限制。
使用环回 (127.0.0.1) 接口通常是网络 enabled/aware 应用程序的开发(调试)增量。如果您仅将环回接口用作 IPC(进程间通信)工具,我会 "raise an eyebrow"。此外,数据吞吐量(200 Mbps 峰值问题)不传输(通过 OSI 物理层)并且在网络层内为 "turned around"。对于您的(两个)问题:
在调试网络 aware/enabled 应用程序的上下文中,这是在同一设备上测试客户端/服务器的首选方法。对于 IPC 的一种方式,它增加了不必要的开销以在进程之间编组数据,所以如果这是你想要的 objective,我会看看你的 OS- 本地 IPC 机制(因为这通常转化为内存 -将文件映射到跨进程边界;可以有效地将其配置为内存驻留且速度非常快)。
性能将与您的 UDP 设计相关。有效负载的大小、消息的结构、队列管理等。当然,您将处理正常的网络堆栈开销(但如果实施得当且适用,IPC 机制的开销会更少)。
如果您正在寻找特定的代码片段,或者这只是一个普遍的问题(正如我读到的那样),请告诉我。希望这有帮助。