vlambda博客
学习文章列表

白话nginx之事件驱动

    最近去体检,发现一个很有意思的场景。大家都排队领表,排队退表,这两个是唯一需要所有人去同时排队的地方。其他的各个科室就看自己和选择和门口小护士的的安排了。 这个非常像nginx里面的事件驱动


先想想之前的体检是怎么做的呢。

    最一开始的体检,大家排队一个人做完所有的另一个人再进去。即使科室有空闲其他人也不让进去。

    后来发展到不行,做了一次改进,就是一个人排另一个后面也就是后来的流水线。

    到了最新的体检模式,排队进入。进来之后就各自找空闲的科室去体检。是不是有个小护士在门口,看见自己科室空了就喊一声进一个


nginx的事件驱动

    看看nginx把一次请求做了哪些拆分,nginx的一次请求可以看成是一次体检的过程。然后把各个请求内部的事情拆分成各个科室的。也就是事件的拆分。

    建立连接(领表)->事件(各种检查)-> 关闭连接(退表)

    nginx把一次网络请求,细化成了各种事件,读、写、连接、关闭等。自己去处理自己的。不在相互阻塞。


优缺点

    优点:肯定是变快了,性能变快;缺点是复杂了,想想是不是体检时候多了很多护士嗷嗷喊。


最后