openresty三大特性
1.详尽的文档和测试用例
GitHub - openresty/openresty: High Performance Web Platform Based on Nginx and LuaJIT
自带的命令行工具 restydoc
/t目录下所有的测试案例
2.同步非阻塞
local res, err = query_mysql(sql)
local value, err = query_redis(key)
查询完mysql拿到结果后,才能继续查redis,这就是同步
如果不用等mysql返回,就能继续往下走去查询redis,那就是异步
阻塞,特指阻塞操作系统线程。假设查询mysql需要1s,在这一秒内,操作系统的资源(CPU)是空闲的并且等待返回,那就是阻塞,如果CPU可以去处理其他的请求,那就是非阻塞。
openresty里,上面的代码可以实现同步非阻塞。
3.动态
ngxin发生变动,需要修改配置文件,重新加载生效。
而openresty用lua来控制逻辑,通过lua-nginx-module模块中提供的Lua API,可以动态控制路由、上游、请求、响应等等,甚至可以在不重启openresty的情况,修改业务的处理逻辑,并不局限于openresty提供的lua api。
参考和学习: