OpenResty 1.19.3.1 预览版发布 & 线上分享会预告
OpenResty 1.19.3.1 正式版正在筹备发布中,本次先发布 RC0 预览版,供社区测试,不推荐生产使用。
本次更新包含了不少重要的新 feature 和 重要的性能优化。 我们在 i9-9900K 测试环境上,用简单的 Lua Hello world 接口,单 worker 的 QPS 可以从 221939 rps 提升到 269423 rps,有 20%+ 的提升。
在此致谢所有的贡献者,也欢迎更多的贡献者来一起共建 OpenResty。
同时我们也在筹备一个线上分享会议,主要介绍这些新的 feature 以及分享性能优化背后的故事。 欢迎扫码关注我们的微信公众号,接收会议通知,也欢迎大家来报名分享。
本次 RC0 包含以下重要变更
- 升级 Nginx 核心至 1.19.3.
- 升级 LuaJIT,从 Mike Pall 维护的的上游同步
- 优化:新增协程池来复用 Lua 协程
- 优化:依靠 LuaJIT 新增
lua_getexdata2()
和lua_setexdata2()
API,将单个请求内协程调度的时间复杂度从 O(n) 降低到 O(1) - 优化:在
tcpsock/udpsock:send(LUA_TABLE)
等 API 中避免 Lua number 到 Lua string 的转化,减少创建不必要的 GC 对象 - 改进:SSL_* 阶段设置的
ngx.ctx
,将被后续阶段所继承 - 新增:
ngx.ssl
模块的very_cert()
API 允许动态设置 CA 证书,开启客户端证书验证 - 新增:
exit_worker_by_*
阶段,可以更方便的在 worker 退出的阶段执行任务 - 新增:
ngx.balancer
模块的recreate_request()
API,从而可以在 balancer 阶段改写请求信息,并且通过这个 API 使之生效 - 新增:
ngx.req.socket(true?)
创建的 tcpsock 对象,也支持receiveany()
方法 - 新增:
ngx.ssl
模块的server_port()
API 可以获取server_port
完整的 RC0 变更记录请见:
https://github.com/openresty/openresty/releases/tag/v1.19.3.1rc0
下载源码包
欢迎大家下载试用,反馈意见,多谢!