我正在构建一个性能极高的企业软件,它将每秒接收、处理和响应超过50,000个TCP请求。这将分布在许多亚马逊EC2服务器上,但我希望单个服务器能够处理尽可能多的每秒数千个请求(每秒5k)。我很可能会使用运行Amazon Linux的m1.xlarge实例。
我正在用Boost ASIO在C++中构建这个软件,并且我正在尝试找出设计套接字处理的最有效的方法。在示例(http://www.boost.org/doc/libs/1_53_0/doc/html/boost_asio/examples.html)中,我倾向于模拟"HTTP Server2“,因为我们将拥有多个vCPU。
有没有人能描述一下每个HTTP服务器示例的优缺点,以及如何处理如此多的连接,如果有任何其他的见解(关于Boost套接字和/或高吞吐量EC2配置),我将不胜感激。
非常感谢!
发布于 2013-06-29 15:51:37
一些建议:
你没有提到你的服务器要做什么。它将接受和关闭每秒50K个新请求,还是仅服务于来自已建立的TCP连接的消息(请求)。所以我的建议可能会有点泛泛。
在使用epoll作为套接字通知解决方案而不是http://www.kegel.com/c10k.html
发布于 2013-06-29 14:20:25
您可能希望查看非阻塞套接字,并将输入/输出/处理分散到不同的线程中。可能每千个连接创建3个新的输入/输出/处理线程?
希望这能有所帮助。
https://stackoverflow.com/questions/17371462
复制相似问题