Nginx Redis连接到无法访问的主节点

时间:2018-07-13 13:22:09

标签: nginx redis keep-alive openresty

我有一个Elasticache redis集群设置,其中包含1个主服务器和3个从属服务器。我们使用群集端点(这是主机的别名)连接到主机,并使用节点端点连接到从机。每当发生故障转移时,别名都会更改为指向最新的主服务器。

最近一次这样的故障转移期间(由于主服务器关闭),别名已更新,但Nginx仍在尝试连接到旧的主服务器。即使对旧版主机的请求已超时,但Nginx仍继续尝试击中旧版主机进行书写。

在2.5小时后,旧的主节点(现在是从节点)启动后,nginx尝试在其上进行写操作,由于我们在Elasticache中设置了“ close-on-slave-write”,因此连接已关闭。 / p>

以下是我对nginx设置的摘要,我们将redis2-nginx-module用作OpenResty中的redis模块。

keepalive_timeout 240;
redis2_read_timeout 5s;
redis2_connect_timeout 30s;
upstream redis_master_prod {
    server <<cluster_endpoint>> max_fails=0;
    # a pool with at most 600 connections
    # and do not distinguish the servers:
    keepalive 600;
}

我的问题是If the requests were timing out, why wasn't the keep-alived connection closed immediately?

0 个答案:

没有答案