Nginx进程模型

本文介绍了Nginx的高效I/O模型,包括Epoll多路复用如何避免阻塞,以及master-worker进程模型实现平滑重启。同时,探讨了协程机制在单线程worker中的应用,通过epoll回调实现同步调用,提高性能。
摘要由CSDN通过智能技术生成
一、 Epoll多路复用
  1. java bio模型,阻塞进程式
    在这里插入图片描述阻塞IO,当客户端(client)向服务端(server)发起一个请求的时候,socket.write会将数据写入到TCP/IP的缓存区里,TCP/IP缓存区会将数据发送到server。当网络传输较慢/或者client有很多的请求时,一旦缓存区存满会导致client无法发送数据一直在进行等待

  2. linux select模型,变更触发轮询查找
    在这里插入图片描述
    一个server在内部会监听固定数量的client
    当其中监听的client有变化的时候会执行遍历操作
    遍历操作会唤醒所有的变化的client执行read操作
    read操作会读取客户端的数据并返回
    但是select模型有很多的监听client的时候一旦一个发生变化其他的大量client都可能会被遍历一遍消耗很大的性能。并且select的监听数上线理论上是1024。

  3. epoll模型,变更触发
    在这里插入图片描述100个连接如果有变化,那么直接执行回调函数进行执行,不需要遍历这100个链接。 单线程且没有阻塞

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值