nginx lua mysql 性能_深入浅出 nginx lua 为什么高性能

最近很多人问我nginx lua的优势是什么?为什么?

一、同步和异步、阻塞和非阻塞

如果要说清楚这个问题首先要了解:同步和异步、阻塞和非阻塞的关系

同步:php、java的正常代码都是同步执行的

异步:javascript的回调函数就是异步的

说白了自己写的程序里面如果没有回调函数都是同步的,常见的php、python等语言少有异步代码,当前大量使用异步代码的有javascript。

阻塞:查询数据库或者读写文件,如果没有获取结果就一直等待,说明是阻塞的。

非阻塞:执行之后立刻返回是非阻塞的

比如:nginx的模块调用,程序请求了一个读数据库的操作,然后该干嘛干嘛,等到读取结果返回之后,再做剩下的事情。

二、nginx的非阻塞模型

很多人分不清楚异步和非阻塞的区别,按照我的理解主要是主体不同,异步指的是自己写的程序是否有类似回调函数的功能,而非阻塞指的是nginx主体调用读写操作,当数据库没有返回结果的时候,不影响其他的用户请求。

由于咱们使用的是lua,使用这个脚本语言大多场景也是同步的,很好理解,所以咱们主要说一下nginx-lua如何实现非阻塞的。其实非阻塞的功能使用nginx实现的,基本与lua无关,那么nginx如何实现非阻塞的哪?

一般的web服务器都是建立在tcp请求基础之上的非阻塞事件模型,例如:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值