NGINX 一共有多少种健康检测方式

841 views
Skip to first unread message

Dianyong

unread,
Feb 7, 2014, 5:25:44 AM2/7/14
to open...@googlegroups.com
Hello,

看到大神写了 lua-resty-upstream-healthcheck(https://github.com/agentzh/lua-resty-upstream-healthcheck),想知道这个项目的由来是什么?
Nginx本身有健康检测,印象里还有个扩展叫 upstream-check,另外Tengine据说也有自己的健康检测。
所以想请教各位,现在健康检测都有哪些种,有对比评测吗?



-- 
Dianyong
已使用 Sparrow

smallfish

unread,
Feb 7, 2014, 5:55:25 AM2/7/14
to open...@googlegroups.com
之前有一个nginx_upstream_check_module模块:https://github.com/yaoweibin/nginx_upstream_check_module
是通过给nginx打patch的方式,稍微有点重。

章老师这个模块则显得更加轻量级,而且不需要对nginx源码进行改动。



--
--
邮件来自列表“openresty”,专用于技术讨论!
订阅: 请发空白邮件到 openresty...@googlegroups.com
发言: 请发邮件到 open...@googlegroups.com
退订: 请发邮件至 openresty+...@googlegroups.com
归档: http://groups.google.com/group/openresty
官网: http://openresty.org/
仓库: https://github.com/agentzh/ngx_openresty
教程: http://openresty.org/download/agentzh-nginx-tutorials-zhcn.html

Yichun Zhang (agentzh)

unread,
Feb 7, 2014, 2:21:15 PM2/7/14
to openresty
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

level077

unread,
Feb 17, 2014, 1:18:31 AM2/17/14
to open...@googlegroups.com
那用了healthcheck这个模块,是不是跟nginx自身的健康检查并存,同时存在两套健康检查?

在 2014年2月8日星期六UTC+8上午3时21分15秒,agentzh写道:

Yichun Zhang (agentzh)

unread,
Feb 18, 2014, 2:43:08 PM2/18/14
to openresty
Hello!

2014-02-16 22:18 GMT-08:00 level077:
> 那用了healthcheck这个模块,是不是跟nginx自身的健康检查并存,同时存在两套健康检查?
>

我说了,nginx 自身并不存在什么真正意义上的健康检查,只不过是实际请求时的 fail 计数罢了。

是的,lua-resty-upstream-healthcheck 可以和 nginx 自身的 upstream round robin 模块一起工作。

Regards,
-agentzh
Reply all
Reply to author
Forward
0 new messages