当前位置:  开发笔记 > 运维 > 正文

选择vs民意调查与epoll

如何解决《选择vs民意调查与epoll》经验,为你挑选了3个好方法。

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



1> 小智..:

答案是epoll,如果你正在使用Linux,kqueue如果你使用的是FreeBSD或Mac OS X,而i/o完成端口,如果你在Windows上.

你(几乎肯定)要研究的一些额外的东西是:

负载均衡技术

多线程网络

数据库架构

完美的哈希表

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


谢谢你的回复.我知道没有这样的东西称为UDP连接,因为它是一个无连接的面向通信.我想到的应用程序是基于会话的,因此我将其作为连接而不是会话.我的错.此外,基于select with multithreaded application,我已经尝试了超过200,000个会话.只是想优化.我也不是建立可扩展架构解决方案的新手.负载平衡可能不适合我所看到的服务器类型.它绝对是一个多线程网络.很可能会使用某种生产者/消费者模式.

2> unixman83..:

CURL的作者写了一篇关于民意调查与选择vs事件库的精彩文章.


该指南根本没有帮助.它基本上假设每个人都知道三者之间的主要区别.
请至少提供一个摘要,而不仅仅是一个裸链接

3> Yann Ramin..:

Linux:epoll FreeBSD:kqueue Windows:??

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


Windows:IO完成端口
顺便说一下.IOCP:Windows NT 3.5,1994; kqueue:BSD 4.1,2000; epoll:linux内核2.5.44,2002.
libev编写得很糟糕IMO,在我停止活动后为活动事件释放内存时崩溃了!设计不好.此外,它包含大多数代码的一个(3000行).c文件.
在libev上+1,它太棒了!
@ unixman83单个3000行.c文件听起来很神奇!
推荐阅读
TXCWB_523
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有