选择vs民意调查与epoll

时间:2010-10-28 04:42:19

标签: linux sockets epoll posix-select

我正在设计一个新服务器,它需要支持数千个UDP连接(大约100,000个会话)。有哪些输入或建议可供使用?

3 个答案:

答案 0 :(得分:44)

如果您正在使用Linux,那么答案就是epoll,如果您使用的是FreeBSD或Mac OS X,那么答案就是epque;如果您使用的话,那么答案就是i / o完成端口。

您(几乎肯定)想要研究的其他一些事情是:

  • 负载平衡技术
  • 多线程网络
  • 数据库架构
  • 完美哈希表

此外,注意UDP没有“连接”而不是TCP,这是重要。调试基于网络的解决方案可能具有挑战性,因此从小规模开始并扩大规模也符合您的最佳利益。

答案 1 :(得分:40)

CURL的作者写了一篇关于 poll vs select vs event libraries 的精彩文章。

答案 2 :(得分:18)

Linux:epoll FreeBSD:kqueue Windows:??

有一些包装库,例如libevent和libev,它们可以为你抽象。