Hello! 2013/3/5 Lucien Li: > ngx.req.socket 在lua中建立socket连接是异步,非阻塞的吗? > ngx.req.socket API (以及其他的绝大部分 ngx_lua 提供的 API)都是同步非阻塞的。如果你希望 socket 操作相对于你的 Lua 主协议是异步的,你需要使用 ngx.thread API: http://wiki.nginx.org/HttpLuaModule#ngx.thread.spawn 由于你把异步和非阻塞放在一起,所以你有可能把这两个概念等同起来。真正影响并发能力的是非阻与非阻塞,而不是同步和异步。 使用异步操作时可以降低单请求的延时,但很可能会以牺牲一些系统整体的吞吐量为代价。 Best regards, -agentzh
Hello! 2013/3/6 agentzh <age...@gmail.com>: > ngx.req.socket API (以及其他的绝大部分 ngx_lua 提供的 API)都是同步非阻塞的。如果你希望 socket > 操作相对于你的 Lua 主协议是异步的,你需要使用 ngx.thread API: 笔误,应当作“如果你希望 socket 操作相对于你的 Lua 主协程是异步的”。 Best regards, -agentzh