以下都是个人理解,如有不对之处,望指出,谢谢!
-
一、如何实现高并发
提高并发,可从"响应时间"
和"吞吐量"
方面考虑:尽可能的缩短响应时间,增加吞吐量,可以有效提高高并发
。硬件方面就不说了,配置越高,价格越高,机器越多,价格越贵。 实现可以从三个方面考虑 1,从代码层面看: 可以使用多进程,多线程,还可以使用协程,这些,还可以用celery,异步执行。 (cpython的应该注意,如果使用多线程,先考虑自己的程序是IO密集还是CPU密集,因为有GIL锁的存在,如果是CPU密集则不适合使用多线程) 2,从结构部署方面考虑: 使用 nginx+(uwsgi/gunicorn)+ 自己的应用, 还可以使用负载均衡,反向代理。这样服务器会多一些。 3,从数据库方面来说: 数据库部署优化也能相对提高高并发。 比如使用主从复制、读写分离,使用redis缓存减少数据库读写IO。 还可以使用数据库连接池,减少系统性能开销。
-
二、什么是wsgi
浏览器请求一个页面的流程: 1,浏览器发送请求给服务器,包含请求头和请求体 2,服务器解析请求头和请求体 3,服务器根据请求信息来处理请求,生成返回内容 4,服务器生成响应头和响应体 5,服务器返回响应给浏览器,浏览器显示给用户 一个网站,一般有很多个不同的请求,在这些请求中,基本1,2,4,5部都是固定的, 变的只有第三步,所以把这四步抽象出来,让开发者只关注第三步, 这样就可以极大提升开发效率。所以WSGI协议诞生了。
1,接收http请求,对请求进行初步封装简单处理,并且返回http响应; 2,wsgi实现了应用程序的解耦; 3,统一了规范,节省了代码; 4,底层其实就是socket。
网友评论