我正在考虑使用Qt库编写一个自包含的http服务器,尽管许多人认为QtCore过于臃肿并且开销太大。 QtCore http服务器是否会使用线程池管理大约50个并发连接的负载。
QtCore库在arch Linux上动态链接,以便通过优化o2
进行编译答案 0 :(得分:2)
没有理由不能用Qt编写服务器,但是,事实上没有办法预先判断性能是否符合您的要求(取决于您的服务器的功能)。请注意,最佳并发线程数通常取决于硬件核心数以及程序中的并行度。我的建议是在最短的时间内实现你所能做的一切,然后根据需要调整性能。即使服务器无法处理那么多并发连接,您也可以使用进程级并行(运行多线程服务器的多个实例),直到您提高了性能。
答案 1 :(得分:2)
您的问题非常广泛,答案取决于您希望如何设计http服务器。您可以将其设计为“单线程反应器”或“多线程执行器”或“半同步半异步”服务器。
QT主要使用较少的包装类而不是本机或posix API并且确实带来了自己的超重,50个连接听起来不是太多但是答案又取决于这些连接会做什么?提供简单的页面或执行繁重的计算?
我认为项目的难点在于实现一个安全,可靠和可扩展的完整http服务器。您将不得不进行大量编码,以提供简单Java servlet模型的生命周期。需要许多接口/抽象。
您可以找到已经过测试的开源http服务器。我甚至不愿意为生产软件编写自己的文章。
答案 2 :(得分:0)
50个连接并不多。
但我希望你能添加QtNetwork模块: - )