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