ng具备的优势,其他的服务也在采用,而且ng在功能全面上并不占优势,那么为什么ng会被很多企业采用。
首先,ng的高性能是企业最常使用的,而且也是最需要的。
其次,ng具备优轻量级势。
那么,我们先说说高性能的优势。
一,采用IO多路复用epoll模型
1.什么IO复用
比如http请求到应用程序的时候,网卡接收后会转化成Socket流,一个Socket流就是对应IO流,计算机开始的时候并不是很智能,基本是一个http请求,转化成一个Socket流,一个Socket流对应一个IO流,一个CPU单核也这么完,那么多个http请求呢,高并发呢,多个IO,单核一个线程也只能让其阻塞,慢慢处理,虽然现在cpu是多核,那也不能支持百万并发,IO阻塞的问题不能依靠硬件的升级解决,所以底层系统对IO重新设计了。也就是通过多路复用来监听多种描述符,如果其中任意一个描述符处于就绪的状态,就会返回消息给对应的进程通知其采取下一步的操作,这就是IO复用的机制。
在linux中,关于多路复用的使用,有三种IO模型有三种:select、poll和epoll。
(1)Select
目的:优化IO阻塞问题
通过监听IO流,轮询出来所有的流,分类出读数据、写数据的流,并对他们进行操作。
int select(int nfds, fd_set *readset, fd_set