我有一台 Ldirectord 服务器和两台真实服务器。我的 ldirectord 以前每隔一段时间就会检查一次真实服务器上的请求页面,但现在我发现它检查了四次。我监控了两台真实服务器上的日志,它们都有同样的问题。
这是我的 ldirectord 配置:
检查超时 = 10
检查间隔 = 5
自动重新加载 = 是
日志文件 =“/var/log/ldirectord.log”
静止 = 无
虚拟 = 192.168.1.100:80fallback=127.0.0.1:80 real=192.168.1.10:80 gate real=192.168.1.20:80 gate service=http request="lb.html" receive="still alive" scheduler=sh persistent=60 protocol=tcp checktype=negotiate
Ldirectord 会每 5 秒(checkinterval)连接每个真实服务器一次并请求 192.168.0.10:80/test.html (real/request)。
真实服务器的访问日志:
192.168.1.100 - - [13/Jun/2012:10:36:44 -0700] “GET /lb.html HTTP/1.1” 200 12 “-” “libwww-perl/5.805”
192.168.1.100 - - [13/Jun/2012:10:36:44 -0700] “GET /lb.html HTTP/1.1” 200 12 “-” “libwww-perl/5.805”
192.168.1.100 - - [13/Jun/2012:10:36:44 -0700] “GET /lb.html HTTP/1.1” 200 12 “-” “libwww-perl/5.805”
192.168.1.100 - - [13/Jun/2012:10:36:44 -0700] “GET /lb.html HTTP/1.1” 200 12 “-” “libwww-perl/5.805”
192.168.1.100 - - [13/Jun/2012:10:36:49 -0700] “GET /lb.html HTTP/1.1” 200 12 “-” “libwww-perl/5.805”
192.168.1.100 - - [13/Jun/2012:10:36:49 -0700] “GET /lb.html HTTP/1.1” 200 12 “-” “libwww-perl/5.805”
192.168.1.100 - - [13/Jun/2012:10:36:49 -0700] "GET /lb.html HTTP/1.1" 200 12 "-" "libwww-perl/5.805"
192.168.1.100 - - [13/Jun/2012:10:36:49 -0700] "GET /lb.html HTTP/1.1" 200 12 "-" "libwww-perl/5.805"
192.168.1.100 - - [13/Jun/2012:10:36:54 -0700] "GET /lb.html HTTP/1.1" 200 12 "-" "libwww-perl/5.805"
192.168.1.100 - - [13/Jun/2012:10:36:54 -0700] "GET /lb.html HTTP/1.1" 200 12 "-" "libwww-perl/5.805"
192.168.1.100 - - [13/Jun/2012:10:36:54 -0700] "GET /lb.html HTTP/1.1" 200 12 "-" "libwww-perl/5.805"
192.168.1.100 - - [13/Jun/2012:10:36:54 -0700] "GET /lb.html HTTP/1.1" 200 12 "-" "libwww-perl/5.805"
答案1
我唯一能说的是,我在我们的部署中看到了同样的问题。
我相信这与一致性检查有关,一次进行多次检查可确保获得的响应是一致的,从而检查通过。
我还没有找到任何文件提到这一点是可以改变的。
综上所述,如果经过多次检查,服务仍按预期运行,那么建议遵循那句老话“如果它没坏,就不要修理它”。
然而,如果您绝对必须删除多个检查(如果它们是为了一致性而运行,我强烈建议不要这样做),那么需要进一步研究配置变量(如果存在);如果不存在,则编辑代码并重新编译。