2

我使用 Poco 为 Linux 编写了一个代理服务器,但此后一直在阅读实现 TCP/IP 服务器可伸缩性的各种方法。我需要服务器来处理持久连接(不是 HTTP 流量),同时连接的上限约为 250 个。每个连接通常使用大约 5-10Kb/秒,处理流量的最佳延迟至关重要。

就目前而言,我正在使用 Poco SocketReactor,它使用 Reactor 模型,其核心是 select() 调用,但是我已经阅读了 C10K 问题以及其他一些资源,似乎使用这种方法可能不是最好的主意。我相信 Poco 库中有一个使用 poll() 的测试实现,所以这可能是改进的一个选项。

有没有人有使用 Poco SocketReactor 的经验,你知道它在我的场景中的扩展性如何?如果它不能很好地扩展,将不胜感激有关替代方案的建议。

4

1 回答 1

0

在 Windows 上 Poco 确实使用 select(),但是在 Linux/BSD/OSX 上,它将使用以下最佳实现:

  • 选择()
  • 轮询()
  • epoll()
  • /开发/轮询
于 2013-02-25T14:17:51.190 回答