Ошибка произвольного SSL-рукопожатия при подключении к ElasticCache с помощью ioRedis - PullRequest
0 голосов
/ 20 сентября 2018

Я пытаюсь подключиться к кластеру ElastiCache, который зашифрован при передаче из сценария узла с помощью ioRedis.Иногда мой скрипт работает, иногда я получаю Error: 140736319218624:error:140940E5:SSL routines:ssl3_read_bytes:ssl handshake failure:../deps/openssl/openssl/ssl/s3_pkt.c:1216:

Вот весь мой код:

var Redis = require('ioredis');
var nodes = [{
host: 'clustercfg.name.xxxxxx.region.cache.amazonaws.com',
port: '6379',
}];
var cluster = new Redis.Cluster(nodes,{
redisOptions: {
    tls: {}
}});

cluster.set('aws', 'test');
cluster.get('aws', function (err, res) {
    console.log(res);
    if (err) {
        console.error(err)
    }
    cluster.disconnect()
});

1 Ответ

0 голосов
/ 06 октября 2018

Я считаю, что ошибка рукопожатия ssl является побочным эффектом ошибки состояния гонки в ioredis.

Последние несколько дней я ломал голову над той же проблемой (ioredis версия 4.0.0),Я просто не мог надежно подключить ioredis к нашему кластеру эластичных болей.Я вижу ту же самую неустойчивую ошибку.

Ошибка: 140618195700616: ошибка: 140940E5: Подпрограммы SSL: ssl3_read_bytes: сбой рукопожатия ssl: ../ deps / openssl / openssl / ssl / s3_pkt.c: 1216:

Вы можете просмотреть выходные данные отладки ioredis, установив "DEBUG = ioredis: *" в среде вашего узла.Как только я это сделал, я увидел, что когда произошла ошибка, она сопровождалась несколькими сообщениями, подобными следующим:

2018-10-06T18: 24: 38.287Z ioredis: cluster: connectionPool Отключить xxx.usw2.cache.amazonaws.com:6379, поскольку узел не содержит ни одного слота

Я попытался повторить node-redis и redis-clustr, он работает с эластичной болью.

...