使用lua-resty-limit-traffic限流,在使用conn限制并发数时,必须在log阶段执行leaving,但是由于以下原因:https://groups.google.com/forum/#!msg/openresty/Yo9xIvCs9SA/E0Cj4kpDCwAJ当log阶段无法执行时导致conn记录有误,是否有其他办法规避?
我也碰到类似问题,接口大量超时导致conn计数无法leaving释放。跪求解决方案?在 2017年10月30日星期一 UTC+8下午4:46:31,Qian Chen写道:使用lua-resty-limit-traffic限流,在使用conn限制并发数时,必须在log阶段执行leaving,但是由于以下原因:https://groups.google.com/forum/#!msg/openresty/Yo9xIvCs9SA/E0Cj4kpDCwAJ当log阶段无法执行时导致conn记录有误,是否有其他办法规避?
On 2 November 2017 at 11:48:43, Qian Chen (darkb...@gmail.com) wrote:
感觉有个workaround的方案,如Zexuan Luo所说 1、存储在ngx.var里,不过由于ngx.var只能存储string,所以需要序列化一下,可能还需要修改conn和req存储dict_name而不是dict 2、在内部跳转中加上log阶段 在 2017年10月30日星期一 UTC+8下午4:46:31,Qian Chen写道: 使用lua-resty-limit-traffic限流,在使用conn限制并发数时,必须在log阶段执行leaving,但是由于以下原因: https://groups.google.com/forum/#!msg/openresty/Yo9xIvCs9SA/E0Cj4kpDCwAJ 当log阶段无法执行时导致conn记录有误,是否有其他办法规避? --
使用lua-resty-limit-traffic限流,在使用conn限制并发数时,必须在log阶段执行leaving,但是由于以下原因: https://groups.google.com/forum/#!msg/openresty/Yo9xIvCs9SA/E0Cj4kpDCwAJ 当log阶段无法执行时导致conn记录有误,是否有其他办法规避?
感觉有个workaround的方案,如Zexuan Luo所说1、存储在ngx.var里,不过由于ngx.var只能存储string,所以需要序列化一下,可能还需要修改conn和req存储dict_name而不是dict2、在内部跳转中加上log阶段在 2017年10月30日星期一 UTC+8下午4:46:31,Qian Chen写道:使用lua-resty-limit-traffic限流,在使用conn限制并发数时,必须在log阶段执行leaving,但是由于以下原因:https://groups.google.com/forum/#!msg/openresty/Yo9xIvCs9SA/E0Cj4kpDCwAJ当log阶段无法执行时导致conn记录有误,是否有其他办法规避? --
关于 ngx.ctx 在跳转 location 的时候会被销毁,我之前有实现过一个模块可以绕过这个限制https://github.com/tokers/lua-resty-ctxdumphttps://tokers.github.io/2017/10/04/ngx_lua_hack_1/ On 2 November 2017 at 11:48:43, Qian Chen (darkbl...@gmail.com) wrote: 感觉有个workaround的方案,如Zexuan Luo所说 1、存储在ngx.var里,不过由于ngx.var只能存储string,所以需要序列化一下,可能还需要修改conn和req存储dict_name而不是dict 2、在内部跳转中加上log阶段 在 2017年10月30日星期一 UTC+8下午4:46:31,Qian Chen写道: 使用lua-resty-limit-traffic限流,在使用conn限制并发数时,必须在log阶段执行leaving,但是由于以下原因: https://groups.google.com/forum/#!msg/openresty/Yo9xIvCs9SA/E0Cj4kpDCwAJ 当log阶段无法执行时导致conn记录有误,是否有其他办法规避? --
On 2 November 2017 at 11:48:43, Qian Chen (darkbl...@gmail.com) wrote:
抱歉还有些问题:lib/resty/ctxdump.lua 15行:什么时候会走到此if分支呢?我测试时memo表是会不断变大的,因为每次deref的时候memo都存储了上一次的索引值在 2017年11月2日星期四 UTC+8上午11:50:37,tokers写道:关于 ngx.ctx 在跳转 location 的时候会被销毁,我之前有实现过一个模块可以绕过这个限制https://github.com/tokers/lua-resty-ctxdumphttps://tokers.github.io/2017/10/04/ngx_lua_hack_1/ On 2 November 2017 at 11:48:43, Qian Chen (darkbl...@gmail.com) wrote: 感觉有个workaround的方案,如Zexuan Luo所说 1、存储在ngx.var里,不过由于ngx.var只能存储string,所以需要序列化一下,可能还需要修改conn和req存储dict_name而不是dict 2、在内部跳转中加上log阶段 在 2017年10月30日星期一 UTC+8下午4:46:31,Qian Chen写道: 使用lua-resty-limit-traffic限流,在使用conn限制并发数时,必须在log阶段执行leaving,但是由于以下原因: https://groups.google.com/forum/#!msg/openresty/Yo9xIvCs9SA/E0Cj4kpDCwAJ 当log阶段无法执行时导致conn记录有误,是否有其他办法规避? --
Oh, 这里手误写错了,确实这样会让 memo 越来越大,多谢反馈!memo 通过 FREE_LIST_REF 这个 slot,把所有空着的 slot 全部以一种隐式链表的形式串接起来,每当需要新增一个 reference 的时候,可以检查 memo[FREE_LIST_REF] 来判断是有有空余的 slot,这样避免 memo 越来越大。On Monday, November 6, 2017 at 10:31:28 PM UTC+8, Qian Chen wrote:抱歉还有些问题:lib/resty/ctxdump.lua 15行:什么时候会走到此if分支呢?我测试时memo表是会不断变大的,因为每次deref的时候memo都存储了上一次的索引值在 2017年11月2日星期四 UTC+8上午11:50:37,tokers写道:关于 ngx.ctx 在跳转 location 的时候会被销毁,我之前有实现过一个模块可以绕过这个限制https://github.com/tokers/lua-resty-ctxdumphttps://tokers.github.io/2017/10/04/ngx_lua_hack_1/ On 2 November 2017 at 11:48:43, Qian Chen (darkbl...@gmail.com) wrote: 感觉有个workaround的方案,如Zexuan Luo所说 1、存储在ngx.var里,不过由于ngx.var只能存储string,所以需要序列化一下,可能还需要修改conn和req存储dict_name而不是dict 2、在内部跳转中加上log阶段 在 2017年10月30日星期一 UTC+8下午4:46:31,Qian Chen写道: 使用lua-resty-limit-traffic限流,在使用conn限制并发数时,必须在log阶段执行leaving,但是由于以下原因: https://groups.google.com/forum/#!msg/openresty/Yo9xIvCs9SA/E0Cj4kpDCwAJ 当log阶段无法执行时导致conn记录有误,是否有其他办法规避? --
table的组织方式很值得学习:和nginx中connection的空闲连接的组织方式类似,都是头插法,每次使用空闲表头。建议FREE_LIST_REF这个名字可以更改下增加可读性,本质上是一个头部下标slot,比如FREE_LIST_HEAD。 在 2017年11月7日星期二 UTC+8上午10:52:41,tokers写道:Oh, 这里手误写错了,确实这样会让 memo 越来越大,多谢反馈!memo 通过 FREE_LIST_REF 这个 slot,把所有空着的 slot 全部以一种隐式链表的形式串接起来,每当需要新增一个 reference 的时候,可以检查 memo[FREE_LIST_REF] 来判断是有有空余的 slot,这样避免 memo 越来越大。On Monday, November 6, 2017 at 10:31:28 PM UTC+8, Qian Chen wrote:抱歉还有些问题:lib/resty/ctxdump.lua 15行:什么时候会走到此if分支呢?我测试时memo表是会不断变大的,因为每次deref的时候memo都存储了上一次的索引值在 2017年11月2日星期四 UTC+8上午11:50:37,tokers写道:关于 ngx.ctx 在跳转 location 的时候会被销毁,我之前有实现过一个模块可以绕过这个限制https://github.com/tokers/lua-resty-ctxdumphttps://tokers.github.io/2017/10/04/ngx_lua_hack_1/ On 2 November 2017 at 11:48:43, Qian Chen (darkbl...@gmail.com) wrote: 感觉有个workaround的方案,如Zexuan Luo所说 1、存储在ngx.var里,不过由于ngx.var只能存储string,所以需要序列化一下,可能还需要修改conn和req存储dict_name而不是dict 2、在内部跳转中加上log阶段 在 2017年10月30日星期一 UTC+8下午4:46:31,Qian Chen写道: 使用lua-resty-limit-traffic限流,在使用conn限制并发数时,必须在log阶段执行leaving,但是由于以下原因: https://groups.google.com/forum/#!msg/openresty/Yo9xIvCs9SA/E0Cj4kpDCwAJ 当log阶段无法执行时导致conn记录有误,是否有其他办法规避? --