美文网首页
常见问题

常见问题

作者: 清风徐来_简 | 来源:发表于2019-05-16 11:49 被阅读0次

以下都是个人理解,如有不对之处,望指出,谢谢!

  • 一、如何实现高并发
    提高并发,可从"响应时间""吞吐量"方面考虑:尽可能的缩短响应时间,增加吞吐量,可以有效提高高并发
    硬件方面就不说了,配置越高,价格越高,机器越多,价格越贵。
    
    实现可以从三个方面考虑
        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。
    

相关文章

网友评论

      本文标题:常见问题

      本文链接:https://www.haomeiwen.com/subject/wcwbaqtx.html