Poco SocketReactor 可扩展性

发布于 2024-09-02 07:43:13 字数 395 浏览 8 评论 0原文

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

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

有谁有使用 Poco SocketReactor 的经验吗?您知道它对于我的场景的扩展效果如何吗?如果它不能很好地扩展,我们将不胜感激关于替代方案的建议。

I have written a proxy server for Linux using Poco but have since been reading up on the various approaches to achieving TCP/IP server scalability. I will need the server to handle persistent connections (not HTTP traffic) with an upper limit of about 250 simultaneous connections. Each connection typically uses about 5-10Kb/sec and the best possible latency in handling traffic is crucial.

As it stands I am using the Poco SocketReactor which uses the Reactor model with a select() call at its heart however I have had a read on the C10K problem as well as few other resources and it seems that using this approach might not be the best idea. I believe there is a test implementation in the Poco libs that uses poll() so this could be an option to improve things.

Does anyone have any experience using a Poco SocketReactor and do you have any idea how well it might scale for my scenario? If it will not scale well, suggestions on alternatives would be appreciated.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

夜血缘 2024-09-09 07:43:13

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

  • select()
  • poll()
  • epoll()
  • /dev/poll

On Windows Poco does use select(), however on Linux/BSD/OSX it will use the best possible implementation out of:

  • select()
  • poll()
  • epoll()
  • /dev/poll
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文