ECONNRESET происходит каждые 2 часа для подключения к redis с использованием nodejs - PullRequest
2 голосов
/ 05 марта 2019

Я использую redis модуль для подключения redis.

const Promise = require("bluebird");
const redis = require("redis");

Promise.promisifyAll(redis.RedisClient.prototype);
Promise.promisifyAll(redis.Multi.prototype);

var RedisClient = redis.createClient("192.168.59.101", 6379);

RedisClient.on("connect", () => {
    logger.info("connect to redis success");
});

RedisClient.on("error", err => {
    console.error(err);
});

ECONNRESET происходит каждые 2 часа:

{
    "syscall": "read",
    "code": "ECONNRESET",
    "errno": "ECONNRESET"
}

Эта проблема, похоже, связана с TCP keepalive , поскольку tcp_keepalive_time равно 7200 секундам, что ровно 2 часа.

cat /proc/sys/net/ipv4/tcp_keepalive_time
7200

Как решить эту проблему?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...