操做系统的五种通讯模型nginx
一、阻塞I/O服务器
就是咱们常见的socket,监听端口收到消息进行处理,并把结果返回给客户端网络
执行I/O操做完成前会一直进行等待,不会将控制权交给程序。套接字默认为阻塞模式
异步
应用程序调用一个IO函数,致使应用程序阻塞,等待数据准备好。 若是数据没有准备好,一直等待….数据准备好了,从内核拷贝到用户空间,IO函数返回成功指示,程序继续执行
socket
二、非阻塞I/O
分布式
非阻塞IO经过进程反复调用IO函数,与阻塞不一样的是,调用IO函数后,内核会马上返回一个错误的接口,该进程会不断去调用查询结果的函数recv(),直到收到正确的结果,在这个过程当中进程是阻塞的
函数
非阻塞模式套接字与阻塞模式套接字相比,不容易使用。使用非阻塞模式套接字,须要编写更多的代码,可是,非阻塞套接字在控制创建的多个链接,在数据的收发量不均,时间不定时,明显具备优点
性能
二、异步点对点消息模式1spa
客户端发出请求后,程序继续执行,当服务器处理完成时,经过回调函数通知程序操作系统
三、异步点对点消息模式2
增长了中间代理,如cdn、nginx等,加快服务器的应答
四、异步广播消息模式
基于消息订阅分发,将不一样消息分给不一样的服务器执行,也是一种分布式集群处理的一种思想,zookeeper就是这种方式
五、去中心化分布式式
去掉ESB总线的控制,从而去掉系统中枢单点性能的瓶颈,并且后方单点服务器造成一个新活力的网络,造成一个无状态的系统
啦啦啦。。。。。。。