k6 redis 客户端无法连接到 Azure Redis 缓存

问题描述 投票:0回答:1

当我设置 k6 redis 客户端以连接到云中的 azure Redis 实例时,出现此错误:

ERRO[0001] Uncaught (in promise) i/o timeout

这是客户端设置代码:

const redisClient = new redis.Client({ addrs: new Array("myredis.redis.cache.windows.net:6380"), password: "primary_access_key_here" });

当它尝试通过redis客户端“设置”或“获取”时,它会立即返回“i/o超时”错误。

但是,当我运行本地 Redis 服务器然后将客户端指向本地主机时,它确实有效:

const redisClient = new redis.Client({ addrs: new Array("localhost"), password: "" });

有什么想法吗? k6 客户端中是否存在某些错误,导致其无法与 Azure Redis 缓存一起使用?

我尝试使用正确的密码主键将地址值设置为当前 Redis 实例。但是,当我使用空密码将其设置为 localhost 时,它会起作用。

redis client performance-testing load-testing k6
1个回答
0
投票

经过一些故障排除和反复试验后,发现问题在于 Azure Redis 服务器设置为仅接受 SSL 请求。当我允许非 ssl 连接时,我可以直接连接到它。问题确实出在 k6 redis 客户端上,因为它仅使用不安全的 tcp 连接到 redis 服务器实例。因此,解决方案是等待 K6 更新其客户端以允许 SSL 连接,因为我们希望避免中间人攻击。

© www.soinside.com 2019 - 2024. All rights reserved.