Nginx负载平衡Maxscale到故障转移



我有一个简单的流块来将MySQL TCP流量流式传输到Maxscale实例。第二个实例仅作为故障转移,如:

stream {    
upstream maxscale {
zone upstream_maxscale 64k;
server 10.1.0.11:3307;
server 10.1.0.12:3307 backup;
}
server {
listen 3307;
proxy_pass maxscale;
}
}

当连接数较低(<30(时,一切正常。但是当连接很高时(>40,如果我们可以说40个连接很高…(,nginx错误日志不断抱怨一些我不知道如何调试的事情。

recv((在代理和从上游读取时失败(104:对等方重置连接(,客户端:10.1.0.16,服务器:10.1.0.15:3307,上游:"10.1.0.11:3307";,从/到客户端的字节数:15738/64316,从/到上游的字节数为:64316/15738

我尝试过使用reuseportworker_connectionsso_keepalive等选项,但没有机会。

https://nginx.org/en/docs/stream/ngx_stream_core_module.html

https://docs.nginx.com/nginx/admin-guide/load-balancer/tcp-udp-load-balancer/这可能是Maxscale方面的问题吗?

这里的Maxscale 2.4监听器:

# Listener
[listener-rw]
type=listener
service=readwritesplit
protocol=MariaDBClient
address=10.1.0.11
port=3307
ssl=required
ssl_ca_cert=/var/lib/maxscale/ssl/ca-cert.pem
ssl_cert=/var/lib/maxscale/ssl/server.pem
ssl_key=/var/lib/maxscale/ssl/server.key
ssl_version=MAX
# Service
[readwritesplit]
type=service
router=readwritesplit
servers=sql1,sql2,sql3
user=maxscale
password=324F74A347291B3BE79956AD5F4BB2FAD65E1F9052A976722917701742729400
enable_root_user=1
max_sescmd_history=150
max_slave_connections=100%
lazy_connect=true
slave_selection_criteria=LEAST_CURRENT_OPERATIONS
optimistic_trx=true
connection_keepalive=300
master_failure_mode=fail_on_write

https://nginx.org/en/docs/stream/ngx_stream_core_module.html

https://docs.nginx.com/nginx/admin-guide/load-balancer/tcp-udp-load-balancer/

MaxScale日志(在/var/log/maxscale/maxscale.log中(很可能包含您收到此类错误的原因的答案,或者至少可以帮助您确定问题所在。

如果你不能仅从日志中找到原因,我建议在MaxScale项目下打开MariaDB Jira的错误报告。

最新更新