使用POSIX消息队列或Unix域套接字进行本地IPC通信是否更好?
我曾经在机器之间使用Unix套接字(不是域名),我记得制作和断开连接会导致套接字在最终消失之前停留一段时间.此外,如果您想要"可靠"的交换,您必须使用TCP或设计应用程序以返回ACK.我不确定这是否也适用于Unix域套接字.
在我目前的项目中,我们需要本地IPC.我的第一反应是使用POSIX MQueues,因为我之前使用它们进行本地消息传递.但是,一位同事正在建议使用Unix域套接字.
是一个比另一个更好,还是编程熟悉的问题?或者它可能取决于正在创建的应用程序?
从总体上看,我们正在开发的应用程序遵循客户端/服务器模型.客户端向服务器发送消息以"做某事".但是,客户端不会等待"完成"响应 - 尽管他们确实想知道他们的请求是否已被接收.
发送方的基本逻辑是:
connect to server
send request
note if the send worked or not
disconnect from server
Run Code Online (Sandbox Code Playgroud)
一台服务器可能有数百个客户端.
我们正在运行Linux操作系统的SMP系统(4-8个核心)上执行.
提前致谢.