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