【发布时间】:2013-03-20 15:25:48
【问题描述】:
我正在设计一个高性能服务器(不是 HTTP 服务器)并且正在考虑我的设计选项。服务器应支持大量传入连接(以千计),并在 windows 和 linux 上编译。
在 Windows 端,我已经实现了一个 IO 完成端口服务器,到目前为止它似乎可以处理压力。由于 linux 的需求突然出现,我现在尝试找到一个跨平台库,它可以让我通过线程池使用接受/读取事件。
到目前为止,libEvent 似乎是正确的选择(类似于 link 中的“示例代码:回显服务器”)。但引用another page in the libEvent docs:
如果一个 event_base 设置为使用锁定,那么访问它是安全的 多个线程之间。它的循环只能在单个线程中运行, 然而。如果你想让多个线程轮询 IO,你需要 每个线程都有一个 event_base。
我的基本设计是让线程池对接受和读取事件做出反应。如果我理解正确的话,这句话说我不能那样做。
有没有人有过高性能的经验。基于 libEvent 的服务器?我应该使用不同的库吗?
这样的服务器的示例代码将是完美的
【问题讨论】: