我正在寻找使用accept()
在进程之间传输 ed 套接字的方法sendmsg()
。简而言之,我正在尝试构建一个简单的负载均衡器,它可以处理大量连接而无需缓冲流数据。
在处理大量(比如说数百个)并发 TCP 连接时,这是一个好主意吗?如果重要的话,我的系统是 Gentoo Linux
我正在寻找使用accept()
在进程之间传输 ed 套接字的方法sendmsg()
。简而言之,我正在尝试构建一个简单的负载均衡器,它可以处理大量连接而无需缓冲流数据。
在处理大量(比如说数百个)并发 TCP 连接时,这是一个好主意吗?如果重要的话,我的系统是 Gentoo Linux
您可以在此处按照之前的答案共享文件描述符。
就个人而言,我一直使用 pre-fork 来实现服务器。父级设置侦听套接字,生成(预分叉)子级,每个子级执行阻塞接受。我使用管道进行父 <-> 子通信。
在有人进行基准测试并确定发送文件描述符有多“难”之前,这仍然是猜测(有人可能会弹出:“嘿,发送这样的描述符太便宜了”)。但是这里。
如果你只使用线程,你会(很可能,阅读上文)会更好。您可以有以下工作流程:
epoll(7)
等待流量(等待连接+有趣的流量)现在,这确实绕过了整个描述符发送部分。那么有什么问题呢?问题是,如果其中一个线程崩溃,整个进程就会崩溃。因此,您可以自行确定最适合您的服务器的基准。
就我个人而言,我会按照我上面概述的方式来做。另一点:如果工作人员是执行接受的进程的子进程,则无需发送描述符。