OpenResty异步编程

Nginx 为了减少系统上下文切换,它的 worker 是用单进程单线程设计的,事实证明这种做法运行效率很高。但如果有任务阻塞了这个进程,那么高并发就无从谈起了。

官方有明确说明,OpenResty 的官方 API 绝对 100% non-blocking,所以我们只能在她的外面寻找了。我这里大致归纳总结了一下,包含下面几种情况:

这些都应该是我们尽量要避免的。但是理想归理想,现实还是免不了需要使用,这就需要我们将这些操作改变为异步调用,对外提供TCP/HTTP接口的调用,这样我们就能享受异步编程带来的好处了。