V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
gaoyadianta
V2EX  ›  Python

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

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

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

    以你这个并发需求来说,无论如何在 flask 前面要加 gunicorn 或 uWSGI 来解决并发问题。
    zxcvsh
        12
    zxcvsh  
       2019-07-29 12:05:01 +08:00 via iPhone   ❤️ 1
    懒一点 gunicorn
    全一点就 nginx + gunicorn
    把 gunicorn 配置好应该就够用了
    gaoyadianta
        13
    gaoyadianta  
    OP
       2019-07-29 13:41:03 +08:00
    @xpresslink 额,处理速度还没有测试,但是没有复杂逻辑和处理,基本就是操作一下数据库,然后返回一些 html,感觉很简单
    @zxcvsh 请教下,上面有兄弟说用 nginx+gunicorn+gevent 来做,gevent 需要吗?
    lance86
        14
    lance86  
       2019-07-29 16:40:16 +08:00
    如果你有熟悉的一套部署方案的话可以上整套 nginx+gunicon 之类的。
    不过因为你这个是内网的项目,而且你也不是很熟悉这个,为了你的维护方便,我感觉就直接简单的上 gunicorn 应该就够了,简单的看下 gunicorn 的文档,配置好 worker 数和 thread 数,用默认的 worker-class 也就是 sync 就行(额外的还有 gevent 模式),然后测试一下性能看看效果再说。
    gaoyadianta
        15
    gaoyadianta  
    OP
       2019-07-31 09:32:30 +08:00
    @lance86 多谢,很有价值
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2767 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 32ms · UTC 12:00 · PVG 20:00 · LAX 04:00 · JFK 07:00
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.