nginx异步非阻塞理解

作者: eesly_yuan | 来源:发表于2017-04-19 00:11 被阅读748次

好多文章都说nginx是异步非阻塞,这里针对这个概念记录一下自己的理解

异步

异步通常是指调用之后,直接返回,如果有结果后通过消息通知,或者调用注册的回调函数进行处理,其核心在于有结果后通过其他执行流程进行通知和处理,不影响现有的执行流程执行。

而nginx通过超时的epoll方式进行监听连接和或者监听接收多个socket的数据,这里虽然存在超时等待,当还是说它是异步,实际上更确切说是epoll内部的异步机制,即epoll是对不同的socket通过注册感兴趣的事件,内部不是轮询等待这些socket,而是通过在事件发生后收到通知方式对事件进行处理,这里进行超时等待实际上是为了留有时间让事件发生,回收通知。详细过程可参考【Linux学习】epoll详解
总结:nginx的异步是指epoll的异步机制,即内部探测socket事件发生是通过消息通知方式

非阻塞

非阻塞通常是指调用指定调用后,若不满足当前需求直接返回,若满足需求则处理,处理之后返回,因此这种方式实际是需要轮询访问直至成功。

nginx是采用一个进程单线程方式进行多个socket数据处理和建立连接,因此在每个socket进行接收数据或者建立链接的socket时必须采用非阻塞的模式,这样才不会导致一个socket阻塞后,导致其他的socket饿死的情况。
总结:nginx的非阻塞是指nginx对于建立链接的socket和每个建立的连接是采用非阻塞的模式进行数据处理的

以上是我对nginx异步非阻塞的理解,如若有误欢迎大家补充指正。

相关文章

  • nginx异步非阻塞理解

    好多文章都说nginx是异步非阻塞,这里针对这个概念记录一下自己的理解 异步 异步通常是指调用之后,直接返回,如果...

  • 同步和异步、阻塞和非阻塞的区别

    最近研究Nginx的时候知道了Nginx工作进程是异步非阻塞的方式,就对同步和异步、阻塞和非阻塞的区别产生了困惑,...

  • 同步、异步、阻塞、非阻塞,这下明白了

    同步阻塞,同步非阻塞,异步阻塞,异步非阻塞... 晕! 头! 转! 向! 对于小白来说,理解这些概念太难了。搜索这...

  • Nginx异步非阻塞

    在使用socket编程中,经常会看到阻塞、非阻塞、同步、异步,那么它们之间到底有什么关系跟区别呢?本次将那Ngin...

  • 谈论:同步异步阻塞非阻塞.md

    同步/异步:关注的方式(是否主动) 阻塞/非阻塞: 同步阻塞BIO: 同步非阻塞NIO: 异步非阻塞: 异步阻塞:

  • nginx详解

    nginx 模型 异步,非阻塞,事件驱动型 nginx 的用途 HTTP服务 静态服务 反向代理 http/htt...

  • 聊聊Linux 五种IO模型【转载】

    上一篇《聊聊同步、异步、阻塞与非阻塞》已经通俗的讲解了,要理解同步、异步、阻塞与非阻塞重要的两个概念点了,没有看过...

  • Linux网络IO模型

    什么是同步与异步、阻塞与非阻塞 引用知乎 怎样理解阻塞非阻塞与同步异步的区别? 上面的一个回答,很生动的说明了同步...

  • 聊聊Linux 五种IO模型

    上一篇《聊聊同步、异步、阻塞与非阻塞》已经通俗的讲解了,要理解同步、异步、阻塞与非阻塞重要的两个概念点了,没有看过...

  • nginx架构

    Nginx的关键词为:事件驱动、异步、非阻塞 Nginx的程序架构: master/worker,类似于httpd...

网友评论

    本文标题:nginx异步非阻塞理解

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