cloudyplain

现在系统使用的是 nginx+uwsgi(开启 gevent)+bottle(gevent monkey patch),测试场景(读 redis), qps 4k 左右,请问还有性能更高、稳定的生产级别架构吗?谢谢!

yanzixuan

我用 flask ,一直配合 gunicorn 的 eventlet 选项使用。貌似没毛病。

zhuangzhuang1988

Cherrypy 的 wsgi

baocaixiong

gunicorn+meinheld

wuxqing

性能 uwsgi 算是比较高的,但是我还是建议 gunicorn ,因为我们团队碰到一些问题:
使用 uwsgi ,通过 zmq 发消息会丢失;有时候使用 requests 抓取网页会卡死

有几个 API 服务在 docker 中运行, flask 写的,用的是 uWSGI ,工作一直正常,但是加上日志后(用 zmq 转发),出现日志丢失的情况
然后改用 gunicorn ,默认 worker class 是 sync ,测试正常
由于性能偏低,改用 meinheld ,然后客户端有时会出现异常,输出日志发现 API 服务返回的是空白页(状态是 200 )

sagaxu:
uwsgi 里用 zmq 需要 enable-threads 和 lazy-apps 。因为 zmq 会创建后台线程去做报文收发,操作系统的机制决定, fork 出来的子进程会丢失线程,导致新创建的 worker 进程没有 zmq 的线程,能正常工作就怪了。

gunicorn+meinheld 我测试不稳定,会出现空白页面。我现在用的是 gunicorn+gevent, 未出现问题

如果要性能高,可以试试 sanic ,速度很惊艳

参考文档

Deployment — Bottle 0.13-dev documentation
http://bottlepy.org/docs/dev/deployment.html#switching-the-server-backend

本站文章基于国际协议BY-NA-SA 4.0协议共享;如未特殊说明,本站文章皆为原创文章,请规范转载。


0

‌ 如果够出色,却不能出头,至少也做到没第二个我。