使用 ioRedis 连接到 ElastiCache 时发生随机 SSL 握手错误
Random SSL handshake error when connecting to ElastiCache with ioRedis
我正在尝试连接到使用 ioRedis 从节点脚本传输时加密的 ElastiCache 集群。有时我的脚本有效,有时我得到 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()
});
我认为 ssl 握手错误是 ioredis 中竞争条件错误的副作用。
最近几天我一直在为同一个问题而烦恼(ioredis 版本 4.0.0)。我只是无法可靠地将 ioredis 连接到我们的 elasticache 集群。我会看到同样的间歇性错误。
Error: 140618195700616:error:140940E5:SSL routines:ssl3_read_bytes:ssl
handshake failure:../deps/openssl/openssl/ssl/s3_pkt.c:1216:
您可以通过在节点环境中设置 "DEBUG=ioredis:*" 来查看 ioredis 调试输出。执行此操作后,我可以看到错误发生时伴随着几条类似于以下内容的消息:
2018-10-06T18:24:38.287Z ioredis:cluster:connectionPool Disconnect
xxx.usw2.cache.amazonaws.com:6379 because the node does not hold any
slot
我尝试了 node-redis 和 redis-clustr,它们与 elasticache 配合使用效果很好。
我正在尝试连接到使用 ioRedis 从节点脚本传输时加密的 ElastiCache 集群。有时我的脚本有效,有时我得到 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()
});
我认为 ssl 握手错误是 ioredis 中竞争条件错误的副作用。
最近几天我一直在为同一个问题而烦恼(ioredis 版本 4.0.0)。我只是无法可靠地将 ioredis 连接到我们的 elasticache 集群。我会看到同样的间歇性错误。
Error: 140618195700616:error:140940E5:SSL routines:ssl3_read_bytes:ssl handshake failure:../deps/openssl/openssl/ssl/s3_pkt.c:1216:
您可以通过在节点环境中设置 "DEBUG=ioredis:*" 来查看 ioredis 调试输出。执行此操作后,我可以看到错误发生时伴随着几条类似于以下内容的消息:
2018-10-06T18:24:38.287Z ioredis:cluster:connectionPool Disconnect xxx.usw2.cache.amazonaws.com:6379 because the node does not hold any slot
我尝试了 node-redis 和 redis-clustr,它们与 elasticache 配合使用效果很好。