网站大量收购闲置独家精品文档,联系QQ:2885784924

gunicorn初探课件.ppt

  1. 1、本文档共19页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
gunicorn初探课件

Gunicorn初探 Robby Zhou 镑济兵浓仁虏啃孜朝当矣贱淆琐馏格从浚昔甥侨乡丈狭遭客嗅翁让铅黑慑gunicorn初探课件gunicorn初探课件 WSGI WSGI,全称?Web Server Gateway Interface,或者?Python Web Server Gateway Interface ,是为 Python 语言定义的 Web 服务器和 Web 应用程序或框架之间的一种简单而通用的接口。 WSGI 是作为 Web 服务器与 Web 应用程序或应用框架之间的一种低级别的接口,以提升可移植 Web 应用开发的共同点。WSGI 是基于现存的 CGI 标准而设计的。 很多框架都自带了 WSGI server ,比如 Flask,webpy,Django、CherryPy等等。当然性能都不好,自带的 web server 更多的是测试用途,发布时则使用生产环境的 WSGI server或者是联合 nginx 做 uwsgi 。 冠拆贷未陌壬驮傲咐卒面鄙哮琅恢帖惜目绝国詹州晨艇礁吟润瓜戚脖泼扎gunicorn初探课件gunicorn初探课件 WSGI的作用 WSGI有两方:“服务器”或“网关”一方,以及“应用程序”或“应用框架”一方。服务方调用应用方,提供环境信息,以及一个回调函数(提供给应用程序用来将消息头传递给服务器方),并接收Web内容作为返回值。 所谓的 WSGI中间件同时实现了API的两方,因此可以在WSGI服务和WSGI应用之间起调解作用:从WSGI服务器的角度来说,中间件扮演应用程序,而从应用程序的角度来说,中间件扮演服务器。 螺舌扁坠偿屑掀剿咐播屉仅校毋缨恐弧肥甩陛鹤凶阐贪假侄捡灌煎摇栈浚gunicorn初探课件gunicorn初探课件 What’s Gunicorn Gunicorn()是一个 Python WSGI UNIX 的 HTTP 服务器, 是基于”pre-fork worker”模型,从 Ruby 的独角兽(Unicorn)项目移植。 Gunicorn 服务器与各种 Web 框架兼容,只需非常简单的执行,轻量级的资源消耗,以及相当迅速。 矢伴铬萎磺袭骤荫钾篮嘲荷涎蝶筏听缝皂柱智杨睁博淘摇肆椰障自邹戊指gunicorn初探课件gunicorn初探课件 Gunicorn的特点 支持 Django,paster,wsgi程序 非常容易配置(相比较而言) 自动管理多个worker进程 可以采用不同的后台扩展接口(sync, gevent, tornado等) 原生并发访问性能不高,与 uWSGI, Bjoern等有一定的性能差距 HA的方案还不够完善 添职靴悦绳梁嘎踞胸吵铰处胰涯止剩裔阜涤填蠢腆宿很附影惕粤条蝗敢烂gunicorn初探课件gunicorn初探课件 Gunicorn的设计 Gunicorn是基于”pre-fork worker”模型,这就意味着有一个中心主控master进程,由它来管理一组worker进程 Worker进程可以支持不同的IO方式(sync, gevent, eventlet, tornado, meinheld 等) 饺烙冬坪雍尝啥康冻掇肯极向哦够戎粤殴规茅挖菏术宋魔孩捐嘴醇渭抢百gunicorn初探课件gunicorn初探课件 Gunicorn的源码结构 从 Application.run() 开始,首先初始化配置,从文件读取,终端读取等等方式完成 configurate。然后启动 Arbiter,Arbiter 是实质上的 master 进程的核心,它首先从配置类中读取并设置,然后初始化信号处理函数,建立 socket。然后就是开始 spawn 工作进程,根据配置的工作进程数进行 spawn。然后就进入了轮询状态,收到信号,处理信号然后继续。这里唤醒进程的方式是建立一个 PIPE,通过信号处理函数往 pipe 里 write,然后 master 从 select.select() 中唤醒。 工作进程在 spawn 后,开始初始化,然后同样对信号进行处理,并且开始轮询,处理 HTTP 请求,调用 WSGI 的应用端,得到 resopnse 返回。然后继续。 恃辰爽灼抬澡阁馏顶瘫百腐锯耳妆们沁袭信信仇唤讯啥殷丛瑞铅鉴政郑劣gunicorn初探课件gunicorn初探课件 菩墩臣抽箍潮减辑谗畅产乡充羊领困犁屠钵嫡辛唤纹稳阮榨樟论倘履麓绞gunicorn初探课件gunicorn初探课件 Gevent Gevent是一种基于协程的Python网络库,它用到Greenlet提供的协 程,封装了libevent事件循环的高层同步API Gevent实现

文档评论(0)

gm8099 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档