程序员是新兴技术工种中比较高薪的一个,在互联网公司,程序员往往与秃头,压力大,找不到女朋友等等挂钩。
最近,最新技能类榜单出炉,这是一个关于程序员自己给自己贴的几个标签。
其中,不难看出其中Java一直保持有着不可撼动的位置,稳定排在第一位,而Python,才仅仅是第八名。
虽然Python仅仅排在了第八名,但是在前沿领域,如AI,Machine learning方向,Python的使用频率还是远远高于Java,成为这些细分领域的鳌头。
那么,今天我们就一起来看看Python的几个安装包,nginx还有gunicorn的几大用法吧~
Nginx
谈到gunicorn,首先联想到的就是nginx,所以我们从nginx开始讲起。
nginx,简而言之就是一款web反向代理的服务器。
像apache旗下的tomcat也属于这种,就是HTTP反向代理服务器。
类似的服务器还有很多,如果要论最出名的一个,那还得是ngnix。
说到反向代理,首先就会想到什么是正向代理。正向代理,顾名思义,就是VPN之类的存在于客户端的代理。两者的区别就在于,一个是客户端的代理器,一个是服务器端的代理。
ngnix很火的原因主要有两点,一点是关于高并发问题的处理,ngnix有着得天独厚的优势。
高并发问题是程序员头疼的一个topic,不仅非常考验人的耐心,而且对技术知识的广泛性有要求。
为了解决系统可以同时兼具保持高效处理能力和任务分配能力的同时,还可以灵活上线下线服务器,高并发问题正式被命名成为了一个专业的问题亟待解决。
ngnix就是解决高并发问题的一贴良药,不仅可以解决高并发带来的响应时间慢的问题,还解决了吞吐量小的问题,可谓是一举多得。
gunicorn
而Python旗下的gunicorn,不仅和ngnix类似,可以解决高并发及其附加问题,而且是仅仅针对linux系统的高效程序。
但是与nginx不同的是,gunicorn是一个WSGI,意象来讲就是一座连接web server 和web app的一座桥梁。而nginx确实是实实在在的web server之一。
gunicorn可以实现很多功能,最主要的就是他的Pre-fork worker model。
什么是Pre-fork呢?
fork的意思是复制,Pre fork就是提前复刻。
这是说,在unicorn的模式下,为了解决高并发问题中的响应时间和吞吐量等等问题,unicorn会采取提前复刻出来一个进程的模式来等待将要进来的任务。
不过,unicorn虽然提供了这样丰富的特别服务,其实他也有web server 的普通功能,就像nginx。
可以说,unicorn为linux系统下的高并发问题提供了一条便利的解决方法。
评论区的你更喜欢unicorn还是nginx呢?
欢迎留言点赞收藏,我们下期见~