第一范文网 - 专业文章范例文档资料分享平台

黑马程序员高并发是什么、高并发编程、高并发解决方案 - 图文 

来源:用户分享 时间:2025/5/17 12:36:52 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

【黑马程序员】高并发是什么、高并发编程、高并发解决方案

黑马程序员免费视频库:yun.itheima.com?2020sxkyk 使用Flask的做服务器框架,可以以python code.py的方式运行,但这种方式不能用于生产环境,不稳定,比如说: 有一定概率遇到连接超时无返回的情况

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

黑马程序员免费视频库:http://yun.itheima.com?2020sxkyk

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

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

# 携程的第三方包-这里选择gevent, 当然你也可以选择eventlet

pip install gevent

# 具体的代码如下:

from flask import Flask

from gevent.pywsgi import WSGIServer

from gevent import monkey

# 将python标准的io方法,都替换成gevent中同名的方法,遇到io阻塞gevent自动进行协程切换

黑马程序员免费视频库:http://yun.itheima.com?2020sxkyk

monkey.patch_all()

# 1.创建项目应用对象app

app = Flask(__name__)

# 初始化服务器

WSGIServer((\

# 来启动服务---这样就是以协程的方式运行项目,提高并发能力

python code.py

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

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

pip install gunicorn

黑马程序员免费视频库:http://yun.itheima.com?2020sxkyk

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

$gunicorn -h

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

# 使用gevent做异步(默认worker是同步的)

gunicorn -w 8 --bind 0.0.0.0:8000 -k 'gevent' 运行文件名称:Flask程序实例名

运行方案2: 将运行的信息加载到配置文件中 使用gunicorn + gevent 开启高并发

import multiprocessing

黑马程序员免费视频库:http://yun.itheima.com?2020sxkyk

\的配置文件\

# 预加载资源

preload_app = True

# 绑定

bind = \

# 进程数

workers = multiprocessing.cpu_count() * 2 + 1

# 线程数

threads = multiprocessing.cpu_count() * 2

# 等待队列最大长度,超过这个长度的链接将被拒绝连接

backlog = 2048

# 工作模式

# worker_class = \

worker_class = \

黑马程序员免费视频库:http://yun.itheima.com?2020sxkyk

黑马程序员高并发是什么、高并发编程、高并发解决方案 - 图文 .doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c6jmcj9bgwq7f2vc1v0ey6gjog0oh070065e_1.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top