好文档 - 专业文书写作范文服务资料分享网站

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

天下 分享 时间: 加入收藏 我要投稿 点赞

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

黑马程序员免费视频库: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

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

【黑马程序员】高并发是什么、高并发编程、高并发解决方案黑马程序员免费视频库:yun.itheima.com?2020sxkyk使用Flask的做服务器框架,可以以pythoncode.py的方式运行,但这种方式不能用于生产环境,不稳定,比如说:有一定概率遇到连接超时无返回的情况1,通过设置app.run()的参数,来达到多进程的效果。看
推荐度:
点击下载文档文档为doc格式
6jmcj9bgwq7f2vc1v0ey6gjog0oh070065e
领取福利

微信扫码领取福利

微信扫码分享