????????前面一篇文章提到了使用nginx来对kylin集群进行反向代理,
????????我3个节点,有一个是不能查询的,通过查阅资料,有两种处理方式。
????????通过自己实际情况,我选择了节点健康检查的方式。通过查阅资料,网上说有现成的插件。所以,我直接在github上搜:nginx健康检查。出现了:
????????这里,我选择了Star多的一个,来进行了下载。下载后,将包放在我得nginx节点上任意一个目录,怎么安装在那里面都写好了,只需要运行下面红色的部分。
????????要注意的是,红色部分里面要选择和自己nginx对应的版本的patch。
? ? ? ? 下面进入nginx目录,运行:
./configure --prefix=/usr/local/nginx-1.16 --with-stream --with-http_stub_status_module --with-http_ssl_module --add-module=/usr/local/ngx_healthcheck_module-master
? ? ? ? 接下来编译:
make && make install
????????成功后,我的nginx配置如下(我只截取修改部分):
server {
listen 81;
server_name localhost;
location /status {
healthcheck_status json;
}
location / {
proxy_pass http://192.168.200.12;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
upstream 192.168.200.12 {
server 192.168.200.11:7070;
server 192.168.200.12:7070;
server 192.168.200.13:7070;
check interval=3000 rise=2 fall=5 timeout=5000 type=tcp;
}
打开网页,输入
http://192.168.200.12:81/status?format=html
发现了:
健康状态检成功。下面进行测试,我去关闭那台设置为job的kylin(第一台)。
再次刷新网页,发现了:
那么再次回答上一章的问题,使用相同命令进行测试呢:
curl -X POST -H "Content-Type: application/json" -u admin:KYLIN -d '{"project": "test1","sql": "select * from ods.KKTEST2;"}' http://192.168.200.12:81/kylin/api/query
结果如下:
可以看到无论测试几次都成功。任务完成。