OpenResty 私有庫是由 OpenResty Inc. 構建和維護的商業級、生產就緒的 Lua 庫和 Nginx 模組。其中多個庫是知名開源元件——lua-resty-redislua-resty-httplua-cjson,乃至 LuaJIT 本身——的即插即用替換或深度增強版本,採用純 C 核心實現,提供更高的吞吐量、可預測的資源消耗,以及商業支援。

完整目錄

功能對應的開源元件瞭解更多
luajit-plus最佳化版 LuaJIT 引擎:在分配器層面主動回收 RSS 記憶體,table 操作加速(某些場景下快數千倍),額外的語言便利特性LuaJIT部落格 · 文件
jit.cjson(隨 luajit-plus 一同分發)JSON 編碼速度最高 18 倍、解碼速度最高 6 倍於開源 Lua-cjson 模組;支援 JSON 註釋和尾部逗號lua-cjson部落格 · 手冊
lua-resty-jsonb以二進位制 JSONB 形式操作和儲存 JSON 資料,避免序列化/反序列化,減少 GC 物件lua-cjson(替代方案)文件
lua-resty-tls-session叢集範圍的 TLS 會話票據金鑰同步與零停機輪換——無需 nginx -s reload—(填補了原生 Nginx TLS 操作中的空白)部落格 · 文件
lua-resty-http-fast高效能 HTTP 客戶端,純 C 核心,100% 非阻塞 I/O,介面與開源 lua-resty-http 保持一致lua-resty-http文件
lua-resty-kafka-fast由 librdkafka 驅動的 Kafka 生產者/消費者,在專用執行單元中執行;批次寫入可達每核 250,000 條/秒lua-resty-kafka部落格 · 手冊
lua-resty-redis-fast純 C 核心的 Redis 客戶端——效能最高可達開源 lua-resty-redis 的 2.5 倍lua-resty-redis文件
lua-resty-redis-cluster-fast在同一 C 核心 cosocket 基礎上增加 Redis Cluster 支援lua-resty-redis(叢集模式)文件
lua-resty-mysql-fast高效能 MySQL 客戶端,純 C 核心,100% 非阻塞 I/O文件
lua-resty-memcached-fast高效能 memcached 客戶端,純 C 核心,100% 非阻塞 I/O文件
lua-resty-dymetrics無鎖高效能指標採集,支援 JSON 或 Prometheus 輸出文件
lua-resty-limit-traffic-dynamic動態 HTTP 請求限速,將 CPU 利用率保持在指定目標範圍內文件
lua-io-nginx-module-plus非阻塞檔案讀寫,比開源版本更穩定lua-io-nginx-module文件
openresty-minifiers流式 JS/CSS/HTML 壓縮,作為 Nginx 輸出過濾器執行——每核 120+ MB/s,O(1) 記憶體部落格 · 文件
dubbo-nginx-module-plus深度最佳化的 Dubbo 閘道器模組,穩定性和效能均優於開源版本dubbo-nginx-module文件
zstd-nginx-module-plusZstandard (zstd) 壓縮——效能比 gzip 壓縮高 2–5 倍——修復了開源版本的 bug,並提供 Lua 介面實現動態控制zstd-nginx-module文件

按場景分類

資料庫和快取客戶端。 lua-resty-redis-fastlua-resty-redis-cluster-fastlua-resty-mysql-fastlua-resty-memcached-fast 採用相同的設計理念:以純 C 核心和 100% 非阻塞 I/O 重新實現的高效能客戶端。

HTTP 和訊息佇列。 lua-resty-http-fast 保持與開源 lua-resty-http 一致的介面;lua-resty-kafka-fast 將 Kafka 寫入完全移出請求路徑;dubbo-nginx-module-plus 服務於 Dubbo 閘道器部署。

JSON 和資料處理。 jit.cjsonlua-cjson 的即插即用替換——無需修改程式碼;lua-resty-jsonb 更進一步,透過對二進位制 JSONB 直接操作來完全避免序列化。

內容和壓縮。 openresty-minifiers 在閘道器層對 JS/CSS/HTML 進行即時壓縮,適用於無法修改上游構建流程的場景;zstd-nginx-module-plus 為 Nginx 帶來了生產級的 Zstandard 壓縮能力。

流量控制和可觀測性。 lua-resty-limit-traffic-dynamic 根據 CPU 利用率目標動態調整限速;lua-resty-dymetrics 以無鎖方式採集指標,支援匯出 JSON 或 Prometheus 格式。

TLS 和執行時。 lua-resty-tls-session 使 TLS 會話恢復在負載均衡叢集中可靠執行,並支援零停機金鑰輪換;luajit-plus 替換 LuaJIT 執行時,從根本上解決 RSS 膨脹和 OOM Kill 問題;lua-io-nginx-module-plus 在不阻塞事件迴圈的前提下處理檔案 I/O。

許可方式

這些庫是由 OpenResty Inc.——即 OpenResty 本身的建立者和維護者——構建的專有軟體。透過標準包管理器(aptyum)以私有包的形式分發,使用訂閱 token 進行認證,並持續接收更新和安全修復。如需評估、瞭解定價或部署指導,請訪問產品頁面或聯絡我們的工程團隊。

常見問題

問:OpenResty 私有庫是開源的嗎? 答:不是。它們是由 OpenResty Inc. 構建的商業專有庫。其中許多是對流行開源元件(lua-resty-redis、lua-resty-http、lua-cjson、LuaJIT)的增強或替換。

問:使用它們需要修改程式碼嗎? 答:取決於具體的庫。有幾個是即插即用的:jit.cjson 不影響已有的 require "cjson" 呼叫,luajit-plus 替換執行時無需任何程式碼修改,openresty-minifiers 僅需配置即可啟用。而客戶端庫(如 lua-resty-kafka-fast)則提供了自己的(刻意精簡的)API。

問:如何安裝它們? 答:透過您常用的包管理器(apt-get install / yum install),從 OpenResty Inc. 的私有包倉庫安裝,使用您的訂閱令牌進行認證。各庫的具體安裝說明請參閱官方文件