全书目录

第五十四篇:OpenResty 完全指南 —— 可编程网关锻造厂宇宙

九、常见误区:很多事故就埋在这些地方

2 分钟 533 字 第 944 / 962 个阅读单元

#误区 1:把 OpenResty 当成“脚本版 Nginx”

错。它是事件驱动运行时,不是给配置文件缝几段 Lua。

#误区 2:在请求阶段使用阻塞库

这是最危险的。只要把 worker 卡住,你的高并发优势就没了。

#误区 3:乱用全局变量

全局变量不仅可能污染命名空间,还会让 worker 间行为不一致。
模块状态、共享状态、本地状态,一定要分清。

#误区 4:不知道不同 phase 能做什么

不是所有阶段都能干同样的事。
比如某些上下文里不能做 cosocket I/O,filter 阶段也有自己的限制。

#误区 5:以为 body_filter 拿到的是完整响应体

很多时候你拿到的是分块流
你是在流水线上接一段一段钢材,不是一次性拿到整根。

#误区 6:把 lua_shared_dict 当数据库

它是共享内存字典,适合缓存、计数、轻量协调,不是通用持久化数据库。

#误区 7:所有逻辑都堆在一个 access_by_lua_block

前期快,后期一定烂。
一定要插件化、模块化、分层。

#误区 8:觉得 OpenResty 就一定比所有方案更快

不成立。
如果你的逻辑设计糟糕、I/O 阻塞、subrequest 滥用、共享字典冲突严重,性能照样会塌。