我决定用 Python 为我的移动应用程序编写 Web 服务。将有大约 10 个 Web 服务,它们必须进行 Web 抓取并返回 JSON 数据。
我正在尝试找出最佳解决方案。
我一直在考虑使用 NGINX+uWSGI+Flask。
但我发现 Flask 有一些我不需要的东西,例如 Jinja2 模板系统。
仅使用 Werkzeug 怎么样,这是 Flask 使用的 WSGI 实用程序库?使用 Werkzeug 而不是整个 Flask,服务器会更高效吗?
你还有什么建议吗?
我决定用 Python 为我的移动应用程序编写 Web 服务。将有大约 10 个 Web 服务,它们必须进行 Web 抓取并返回 JSON 数据。
我正在尝试找出最佳解决方案。
我一直在考虑使用 NGINX+uWSGI+Flask。
但我发现 Flask 有一些我不需要的东西,例如 Jinja2 模板系统。
仅使用 Werkzeug 怎么样,这是 Flask 使用的 WSGI 实用程序库?使用 Werkzeug 而不是整个 Flask,服务器会更高效吗?
你还有什么建议吗?
有很多选择。不过,您已经提到有很多用户,您需要非常有效的解决方案。
考虑到这一点,考虑使用Tornado和nginx作为负载均衡器,将请求转发到您的 tornado 服务器:
通过使用非阻塞网络 I/O,Tornado 可以扩展到数万个打开的连接。
该框架与大多数主流 Web 服务器框架(当然还有大多数 Python 框架)不同,因为它是非阻塞的并且相当快。因为它是非阻塞的并且使用 epoll 或 kqueue,它可以同时处理数千个常设连接,这意味着该框架非常适合实时 Web 服务。
我个人在使用 mongodb 作为数据库构建在线商店时使用了这种组合,使用用于 tornado 和 mongodb 的异步 python 驱动程序与它进行通信,称为motor。随时询问有关此选项的任何问题。
希望有帮助。