前言:

使用flask做服务时,可以使用python run.py的方式运行,但是这样不能用于生产环境,可能会出现连接无响应的情况。后来通过查找资料,发现flask服务处理多线程、高并发的一下方法,主要有一下几个方面:

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

# 1.threaded : 多线程支持,默认为False,即不开启多线程;

app.run(threaded=True)

# 2.processes:进程数量,默认为1.

app.run(processes=True)

ps:多进程或多线程只能选择一个,不能同时开启

2.使用genvent做协程,解决高并发:

from genvent.wsgi import WSGIServer

from genvent import monkey

monkey.patch_all()

app = Flask(__name__)

app.config.from_object(config)

api = Api(app)

db = DBInfo()

# db_old = DBInfo_old()

然后通过这种方式包装WSGIServer((address,port), app).serve_forever()

通过python code.py 的方法,来启动服务

3.通过Guicorn(with genvent)的形式来对app进行包装,来启动服务;

通过一下代码,来启动项目

# 启动命令

gunicorn -c gun.py thread_explore:app

其中gun.py是gunicorn的配置文件

thread_explore是服务的主程序

app是flask的app

gun.py的具体内容:

import os

import gevent.monkey

gevent.monkey.patch_all()

import multiprocessing

# 服务地址(adderes:port)

bind = 127.0.0.1;5000

# 启动进程数量

workers = multiprocessing.cpu_count() * 2 +1

worker_class = 'gevent'

threads = 20

preload_app = True

reload = True

x_forwarded_for_header = 'X_FORWARDED-FOR'

python如何解决高并发_Flask 处理高并发、多线程相关推荐

  1. python高并发架构_Python高并发和多线程有什么关系

    "高并发和多线程"总是被一起提起,给人感觉两者好像相等,实则 高并发 ≠ 多线程 多线程是完成任务的一种方法,高并发是系统运行的一种状态,通过多线程有助于系统承受高并发状态的实现. ...

  2. 高并发架构系列:如何解决Redis雪崩、穿透、并发等5大难题

    别人用手机刷新闻.刷段子,你用手机刷知识.你会的越多,成功率就越高. 本篇分享大型网站高并发架构设计是如何解决Redis雪崩.穿透.并发等5大难题的,以下,enjoy~ 缓存雪崩 数据未加载到缓存中, ...

  3. 高并发解决方案——提升高并发量服务器性能解决思路

    一个小型的网站,可以使用最简单的html静态页面就实现了,配合一些图片达到美化效果,所有的页面均存放在一个目录下,这样的网站对系统架构.性能的要求都很简单.随着互联网业务的不断丰富,网站相关的技术经过 ...

  4. 如何解决网站大流量和高并发问题?

    大流量:上千万台客户端同时请求服务器 高并发:并发是因为单台服务器已经完全不能满足大流量的需求,所以需要多台服务器共同处理请求,来缓解单台服务器的压力.异地部署服务器也可以用来进行容灾 高并发概念(Q ...

  5. 搞懂分布式技术30:高并发解决方案——提升高并发量服务器性能解决思路

    高并发解决方案--提升高并发量服务器性能解决思路 一个小型的网站,可以使用最简单的html静态页面就实现了,配合一些图片达到美化效果,所有的页面均存放在一个目录下,这样的网站对系统架构.性能的要求都很 ...

  6. 到底多大并发才算高并发?一文带你全面认识高并发!

    点击上方蓝色小字,关注"涛哥聊Python" 重磅干货,第一时间送达 作者 | 骆俊武 来源 | IT人的职场进阶 高并发,几乎是每个程序员都想拥有的经验.原因很简单:随着流量变大 ...

  7. JavaWeb 并发编程 与 高并发解决方案

    在这里写写我学习到和自己所理解的 Java高并发编程和高并发解决方案.现在在各大互联网公司中,随着日益增长的互联网服务需求,高并发处理已经是一个非常常见的问题,在这篇文章里面我们重点讨论两个方面的问题 ...

  8. 高并发编程_高并发编程系列:7大并发容器详解(附面试题和企业编程指南)...

    不知道从什么时候起,在Java编程中,经常听到Java集合类,同步容器.并发容器,高并发编程成为当下程序员需要去了解掌握的技术之一,那么他们有哪些具体分类,以及各自之间的区别和优劣呢? 只有把这些梳理 ...

  9. 都在讨论高并发,结果连并发量、TPS、QPS都分不清

    " 年年岁岁跳槽季,回回必问高并发!原因很简单,因为高并发能牵扯出太多问题,接口响应超时.CPU负载升高.GC频繁.死锁.大数据量存储等,能考察求职者的真实情况. 而很多人在第一步就倒下了! ...

最新文章

  1. 【2021斯坦福新书】统计学思维,300页pdf
  2. 如何自学python爬虫-菜鸡的Python爬虫之路(一)如何零基础自学Python
  3. Oracle语句生成+存储过程测试工具发布:Easytran V0.1
  4. dotnet不是内部或外部的命令,也不是可运行的程序或批处理文件
  5. ORA-00980与PL/SQL程序编译出错
  6. php imap模块的添加
  7. jzoj4024-石子游戏【SG函数,博弈论】
  8. pytorch回归_PyTorch:用岭回归检查泰坦尼克号下沉
  9. 使用matplotlib画图时不能同时打开太多张图
  10. 纯英文换行的css,利用CSS实现纯英文数字自动换行
  11. Hibernate 泛型实现 dao 层的基类
  12. Spring、SpringMVC、Shiro面试题
  13. 【Blender 入门系列】 02 乐高方块渲染
  14. 这五本热门网络小说,竟然三本在第四届橙瓜网络文学奖评选目前排在前五!
  15. 基于51单片机自行车码表霍尔测速里程显示超速报警方案原理图设计
  16. 如何脱掉“梆梆加固”的保护壳
  17. idea很带劲的插件
  18. 微信小程序getUserInfo无法获取用户信息
  19. HDU, 3579 Hello Kiki
  20. Android App 性能优化系列结语篇

热门文章

  1. WAMP 2.5 无法访问局域网的解决方法
  2. java019异常、File类
  3. 深入理解javascript的闭包
  4. 【前段开发】行内元素和块级元素总结(HTML CSS)
  5. Altium Designer chapter6总结
  6. C#种死锁:事务(进程 ID 112)与另一个进程被死锁在 锁
  7. Spring RestTemplate中文乱码解决方案
  8. peer not authenticated的终极解决方案
  9. 出现should be mapped with insert=“false“ update=“false“的解决方法
  10. Python日期字符串到日期对象