【问题标题】:webservices in Python: lightest and most efficient solution [closed]Python 中的 Web 服务:最轻量级和最有效的解决方案 [关闭]
【发布时间】:2013-07-10 08:16:31
【问题描述】:

我决定用 Python 为我的移动应用程序编写 Web 服务。 将有大约 10 个 Web 服务,它们必须进行 Web 抓取并返回 JSON 数据。

我正在尝试找出最佳解决方案。

我一直在考虑使用 NGINX+uWSGI+Flask。

但我发现 Flask 有一些我不需要的东西,例如 Jinja2 模板系统。

只使用 Werkzeug 怎么样,这是 Flask 使用的 WSGI 实用程序库? 使用 Werkzeug 而不是整个 Flask,服务器会更高效吗?

你还有什么建议吗?

【问题讨论】:

  • 老实说,只需选择一个看起来不错的框架即可。你想多了,想在问题出现之前解决它。
  • 我已经有 700,000 名该应用程序的用户,他们的网络服务是用 PHP 编写的,所以我正在努力寻找一个非常有效的解决方案
  • @DanieleB 如果您设法在 PHP 中维护了一个如此庞大的应用程序,那么它在任何 Python 框架中都将是小菜一碟。这不应该是一个尖刻的评论,我是认真的。

标签: python web-services flask wsgi werkzeug


【解决方案1】:

有很多选择。不过,您提到有很多用户,您需要非常有效的解决方案。

考虑到这一点,考虑使用Tornadonginx 作为负载平衡器,将请求转发到您的龙卷风服务器:

通过使用非阻塞网络 I/O,Tornado 可以扩展到数十 数千个打开的连接。

该框架不同于大多数主流 Web 服务器框架 (当然还有大多数 Python 框架),因为它是非阻塞的,并且 相当快。因为是非阻塞的,使用epoll或者kqueue, 它可以处理数千个同时站立的连接,这 意味着该框架非常适合实时 Web 服务。


我个人在使用 mongodb 作为数据库构建在线商店时使用了这种组合,使用用于 tornado 和 mongodb 的异步 python 驱动程序与它通信,称为motor。随时询问有关此选项的任何问题。

希望对您有所帮助。

【讨论】:

    猜你喜欢
    • 2011-03-07
    • 2012-12-06
    • 1970-01-01
    • 2021-04-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多