温铭
对服务端工程师来说,如果你的工作中涉及到Nginx、高性能、高并发、动态控制、性能测试、分析等,那么,不论你使用什么开发语言和平台,OpenResty都是不可多得的高性能开发利器。
如果你之前没接触过OpenResty,我确信它会为你打开服务端的「新世界大门」。
作为一个兼具开发效率和性能的服务端开发平台,OpenResty并不像其他开发语言一样从零开始搭建,而是基于成熟的开源组件——Nginx和LuaJIT。
其核心是基于Nginx的一个C模块(lua-nginx-module),这个模块将LuaJIT嵌入到Nginx服务器中,并对外提供一套完整的LuaAPI,透明地支持非阻塞I/O,提供了轻量级线程、定时器等高级抽象。
围绕这个模块,OpenResty构建了一套完备的测试框架、调试技术和由Lua实现的周边功能库。
你可以用Lua语言进行字符串和数值运算、查询数据库、发送HTTP请求、执行定时任务、调用外部命令等,还可以用FFI的方式调用外部C函数。
这基本上满足了服务端开发所需要的全部功能。所以,OpenResty的适用范围早已超出了反向代理和负载均衡。
这就意味着,掌握了OpenResty,就能同时拥有脚本语言的开发效率和迭代速度,以及NginxC模块的高并发和高性能优势。
通过丰富的lua-resty库,OpenResty已逐渐摆脱Nginx的影子,形成了自己的生态体系,在API网关、软WAF等领域被广泛使用。
目前,OpenResty是全球排名第五的Web服务器,我们常用的的余票查询功能、京东的商品详情页,这些高流量的背后,都是OpenResty在默默地提供服务。
△扫描