背景:上层服务长连接情况下,NGINX四层节点挂掉再恢复时,TCP会打到同一台机器,可能导致机器出现性能问题,如果只增加监控脚本,有可能检查三次后负载还不均衡
解决方案:
1.NGINX四层负载改为最小连接和权重1:1
upstream xxl-job-back-proxy-3 {
#hash $remote_addr;
least_conn;
server 192.168.0.107:9977 weight=1;
server 192.168.0.108:9977 weight=1;
check interval=3000 rise=2 fall=5 timeout=5000 default_down=true type=tcp;
}
server {
listen 9978;
proxy_pass xxl-job-back-proxy-3;
access_log logs/tcp9978_access.log main;
proxy_timeout 60s;
}
2.增加监控脚本,计数器3次、间隔时间180s
import subprocess
import re
import time
import logging
import requests
import socket
from datetime import datetime
HOST1 = "192.168.0.107:9977"
HOST2 = "192.168.0.108:9977"
NGINX_CONTAINER = "esl_nginx_1"