<div>

1.使用Flask的做服务器框架,可以以python code.py的方式运行,但这种方式不能用于生产环境,不稳定,比如说: 有一定概率遇到连接超时无返回的情况

1,通过设置app.run()的参数,来达到多进程的效果。看一下app.run的具体参数:

注意: threaded与processes不能同时打开,如果同时设置的话,将会出现以下的错误:

2.使用gevent做协程,从而解决高并发的问题:

3.通过Gunicorn(with gevent)的形式对app进行包装,从而来启动服务【推荐】

安装遵循了WSGI协议的gunicorn服务器–俗称:绿色独角兽

查看命令行选项: 安装gunicorn成功后,通过命令行的方式可以查看gunicorn的使用信息。

指定进程和端口号: -w: 表示进程(worker) –bind:表示绑定ip地址和端口号(bind) —threads 多线程 -k 异步方案

运行方案2: 将运行的信息加载到配置文件中

使用gunicorn + gevent 开启高并发

使用 meinheld + gunicorn + flask 开启高并发神器

拓展

概念:协程就是协同工作的程序,不是进程也不是线程 理解成–不带返回值的函数调用。

历史遗留问题—GIL锁

解决方案:python的高并发更加推荐多进程+协程

io多路复用

python异步实现

多进程 + 协程 + callback(io多路复用做事件驱动)

协程 第三方封装库:

  • gevent = greenlet + python.monkey(底层使用 libevent 时间复杂度: O(N * logN))
  • meinheld = greenlet + picoev (时间复杂度: O(N) )
  • eventlet

picoev和libevent

理解—-协程&线程&进程

2.思考:协程之前切换的场景?

程序发送阻塞的时候切换

  • 读磁盘
  • 读写文件
  • 网络io操作
  • 收发http请求

Flask+Gunicorn(协程)高并发的解决方法探究相关推荐

  1. 服务器高并发的解决方法

    服务器高并发三种解决方法为: 高并发问题是大部分服务器都经历过的,由于资源的有限性,其同时处理请求的能力自然也有限制.当高并发出现时,服务端的处理和响应速度会大幅降低,更严重的会使服务器崩溃.那么,当 ...

  2. JAVA中的高并发,解决高并发的方案

    java高并发,如何解决,什么方式解决 一.什么是高并发 二.高并发的解决方法有两种 三.追加 一.什么是高并发 1.1 高并发(High Concurrency)是互联网分布式系统架构设计中必须考虑 ...

  3. 基于协程的并发框架orchid简介

    2019独角兽企业重金招聘Python工程师标准>>> orchid简介 什么是orchid? orchid是一个构建于boost库基础上的C++库,类似于python下的geven ...

  4. Java架构-高并发的解决实战总结方案

    Java架构-高并发的解决实战总结方案 1.应用和静态资源分离 刚开始的时候应用和静态资源是保存在一起的,当并发量达到一定程度的时候就需要将静态资源保存到专门的服务器中,静态资源主要包括图片.视频.j ...

  5. 处理高并发的六种方法

    处理高并发的六种方法 1:系统拆分,将一个系统拆分为多个子系统,用dubbo来搞.然后每个系统连一个数据库,这样本来就一个库,现在多个数据库,这样就可以抗高并发. 2:缓存,必须得用缓存.大部分的高并 ...

  6. mysql myisam 并发_MySQL的myisam解决并发读写解决方法

    MySQL的myisam解决并发读写解决方法MyISAM在读操作占主导的情况下是很高效的.可一旦出现大量的读写并发,同InnoDB相比,MyISAM的效率就会直线下降,而且,MyISAM和InnoDB ...

  7. mysql 资源占用过高分析和解决方法

    mysql 资源占用过高分析和解决方法 参考文章: (1)mysql 资源占用过高分析和解决方法 (2)https://www.cnblogs.com/luoa/p/10422210.html 备忘一 ...

  8. C#正则表达式引发的CPU跑高问题以及解决方法

    C#正则表达式引发的CPU跑高问题以及解决方法 参考文章: (1)C#正则表达式引发的CPU跑高问题以及解决方法 (2)https://www.cnblogs.com/cmt/p/csharp_reg ...

  9. Java进程占用内存过高,排查解决方法

    Java进程占用内存过高,排查解决方法 参考文章: (1)Java进程占用内存过高,排查解决方法 (2)https://www.cnblogs.com/eeexu123/p/10913389.html ...

最新文章

  1. 你敢参与,我就敢送!牛转好运来,新春大抽奖
  2. 用SAPI实现Speech Recognition(SR) - 命令控制模式
  3. 安卓应用在各大应用市场上架方法整理
  4. 数据访问模式二:数据集和数据适配器(传统的数据访问模式)
  5. maven安装及集成myeclipse
  6. git 分支的创建和切换
  7. JAVA企业级应用服务器之TOMCAT实战
  8. Java完全自学手册pdf,flutter中文网
  9. johnson 算法 贪心
  10. 无公式搞懂GMSK调制原理,附详细注释的matlab GMSK调制解调原理仿真源码
  11. 奔驰4-MATIC和奥迪quattro的区别和共同点是什么(杂记)
  12. Huawei 华为云 机器翻译调用 详解
  13. 贤鱼的刷题日常【c++动态规划】4978:宠物小精灵之收服
  14. python怎么写excel数据透视自动报表_使用Python生成自动报表(E
  15. 木板切割最优matlab,矩形木板最优切割方案的设计与实现
  16. 系统日志函数syslog和syslog配置
  17. 龙芯中科科创板上市:市值357亿 成国产CPU第一股
  18. mpvue利用painter生成海报
  19. 非隔离开关电源相关知识理解汇总
  20. E - DNA Sequence POJ - 2778

热门文章

  1. 以太坊可更新智能合约研究与开发综述
  2. Java配置Spring时REQUIRED和REQUIRES_NEW 的区别
  3. 造成sql注入的功能点_创建一个SQL注入保护功能
  4. ssma5.3_使用SSMA v7.1 for Oracle迁移到SQL Server
  5. 德鲁伊 oltp oltp_内存中OLTP –娱乐看门狗的三个关键点
  6. 关于Java的多线程Runnable的个人理解(基础,不讲概念)
  7. nginx+pm2+nodejs部署
  8. sql 两大类 DDL数据定义语言 和DCL数据控制语言
  9. ECNU 3263 丽娃河的狼人传说(差分约束)
  10. Spring mvc框架下使用kaptcha生成验证码