flask 搭的简单的服务器,必须要上 web 服务器吗

2019-07-29 10:05:28 +08:00
 gaoyadianta
用在局域网内,基本上的场景是几十个终端设备会去连接这台服务器进行一些数据的通信,通信的频次平均在 50 次 /台 /秒。
之前完全没做过服务器端的工作,请问下有经验的,我们这种场景的话有必要上 web 服务器吗(类似 ngnix,tomcat 之类的)
3146 次点击
所在节点    Python
15 条回复
fisher335
2019-07-29 10:08:36 +08:00
gevent
gaoyadianta
2019-07-29 10:10:50 +08:00
@fisher335 额,兄台是不是没搞明白我的问题,gevent 刚搜了下好像并不是网络服务器,还是我没搞明白,请明示
dilu
2019-07-29 10:17:14 +08:00
别问有没有必要,上就完了。配个 nginx 不是很简单的事吗?
shuizhengqi
2019-07-29 10:17:21 +08:00
flask 自带的只能拿来调试吧,生产环境会有性能问题的,如果你这个是自己搞着玩,用不用都无所谓的
luhuisicnu
2019-07-29 10:19:02 +08:00
以生产标准来实施部署,开发服务器肯定是不能用的。至于 flask 项目的生产部署,一搜一堆
haozi3156666
2019-07-29 10:19:04 +08:00
nginx + gunicorn + gevent
gaoyadianta
2019-07-29 10:28:21 +08:00
@dilu
@shuizhengqi
@luhuisicnu 一并谢过了,看来是需要的,回头搞一下
gaoyadianta
2019-07-29 10:28:36 +08:00
@haozi3156666 谢方案
fisher335
2019-07-29 10:30:00 +08:00
@gaoyadianta 我的意思是不用跑服务器了,上个 gevent 跑就行了
gaoyadianta
2019-07-29 10:47:44 +08:00
@fisher335 额,这块没搞过,能稍微详细解释下吗,多谢
xpresslink
2019-07-29 12:00:21 +08:00
你光说通信的频次平均在 50 次 /台 /秒。这个信息还不太足够。

还要考虑每次请求的平均处理时间,这个和服务器硬件性能及配置优化有关,要进行实际测试。
如果每个请求处理演出延迟超过 20ms,每秒 50 请求就是极限了。

以你这个并发需求来说,无论如何在 flask 前面要加 gunicorn 或 uWSGI 来解决并发问题。
zxcvsh
2019-07-29 12:05:01 +08:00
懒一点 gunicorn
全一点就 nginx + gunicorn
把 gunicorn 配置好应该就够用了
gaoyadianta
2019-07-29 13:41:03 +08:00
@xpresslink 额,处理速度还没有测试,但是没有复杂逻辑和处理,基本就是操作一下数据库,然后返回一些 html,感觉很简单
@zxcvsh 请教下,上面有兄弟说用 nginx+gunicorn+gevent 来做,gevent 需要吗?
lance86
2019-07-29 16:40:16 +08:00
如果你有熟悉的一套部署方案的话可以上整套 nginx+gunicon 之类的。
不过因为你这个是内网的项目,而且你也不是很熟悉这个,为了你的维护方便,我感觉就直接简单的上 gunicorn 应该就够了,简单的看下 gunicorn 的文档,配置好 worker 数和 thread 数,用默认的 worker-class 也就是 sync 就行(额外的还有 gevent 模式),然后测试一下性能看看效果再说。
gaoyadianta
2019-07-31 09:32:30 +08:00
@lance86 多谢,很有价值

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/587036

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX