Hello, 看到大神写了 lua-resty-upstream-healthcheck(https://github.com/agentzh/lua-resty-upstream-healthcheck),想知道这个项目的由来是什么? Nginx本身有健康检测,印象里还有个扩展叫 upstream-check,另外Tengine据说也有自己的健康检测。 所以想请教各位,现在健康检测都有哪些种,有对比评测吗? -- Dianyong已使用 Sparrow --
Hello! On Fri, Feb 7, 2014 at 2:25 AM, Dianyong wrote: > 看到大神写了 > lua-resty-upstream-healthcheck(https://github.com/agentzh/lua-resty-upstream-healthcheck),想知道这个项目的由来是什么?; 这个项目的主要目的是: 1. 避免对 nginx 核心打补丁,减少 nginx 版本升级时的维护成本。 2. 100% Lua 实现,方便在脚本语言的层面上进行扩展和定制。 > Nginx本身有健康检测, Nginx 自带的不是异步的健康检查(注意,这里说的是相对于请求处理的“异步”,和非阻塞 IO 无关,和阻塞 IO 也无关),所以节点测试失败的时间(比如超时时间)总是要算在用户请求的延时里面。同时 Nginx 自己的节点状态是每 worker 进程一份,做不到所有 worker 之间共享。 > 印象里还有个扩展叫 upstream-check, 我的这个 lua-resty-upstream-healthcheck 库就是为了取代这个 ngx_upstream_check 模块。 > 另外Tengine据说也有自己的健康检测。 我猜 Tengine 里面的就是姚伟斌的 upstream_check 分支 :) Regards, -agentzh
Hello! On Fri, Feb 7, 2014 at 2:25 AM, Dianyong wrote: > 看到大神写了 > lua-resty-upstream-healthcheck(https://github.com/agentzh/lua-resty-upstream-healthcheck),想知道这个项目的由来是什么? 这个项目的主要目的是: 1. 避免对 nginx 核心打补丁,减少 nginx 版本升级时的维护成本。 2. 100% Lua 实现,方便在脚本语言的层面上进行扩展和定制。 > Nginx本身有健康检测, Nginx 自带的不是异步的健康检查(注意,这里说的是相对于请求处理的“异步”,和非阻塞 IO 无关,和阻塞 IO 也无关),所以节点测试失败的时间(比如超时时间)总是要算在用户请求的延时里面。同时 Nginx 自己的节点状态是每 worker 进程一份,做不到所有 worker 之间共享。 > 印象里还有个扩展叫 upstream-check, 我的这个 lua-resty-upstream-healthcheck 库就是为了取代这个 ngx_upstream_check 模块。 > 另外Tengine据说也有自己的健康检测。 我猜 Tengine 里面的就是姚伟斌的 upstream_check 分支 :) Regards, -agentzh
Hello! 2014-02-16 22:18 GMT-08:00 level077: > 那用了healthcheck这个模块,是不是跟nginx自身的健康检查并存,同时存在两套健康检查? > 我说了,nginx 自身并不存在什么真正意义上的健康检查,只不过是实际请求时的 fail 计数罢了。 是的,lua-resty-upstream-healthcheck 可以和 nginx 自身的 upstream round robin 模块一起工作。 Regards, -agentzh