首页 > 解决方案 > Elasticchache Redis 的 Stunnel(已启用集群模式)

问题描述

我在 AWS 上启动了启用 Elasticcache Redis 集群模式的集群。我有 3 个主分片和每个分片 1 个副本(总共 3 个副本)。我已打开传输中加密。为此,我在我的 EC2 实例上安装了 stunnel,我的配置文件看起来像这样。3001 是我的集群端口

[redis-cli]
客户端 = 是
接受 = 127.0.0.1:3001
连接 = master1_url:3001 [redis-cli1]
客户端 = 是
接受 = 127.0.0.1:3002
连接 = replica1_url.com:3001
[redis-cli2]
客户端 = 是
接受 = 127.0.0.1:3003
连接 = master2_url:3001
[redis-cli3]
客户端 = 是
接受 = 127.0.0.1:3004
连接 = replica2_url.com:3001
[redis-cli4]
客户端 = 是
接受 = 127.0.0.1:3005
连接= master3_url:3001
[redis-cli3]
客户端 = 是
接受 = 127.0.0.1:3006
连接 = replica3_url.com:3001
----------------------------------------------
sudo netstat -tulnp | grep -i 隧道

tcp 0 0 127.0.0.1:3001 0.0.0.0:* LISTEN 32272/stunnel
tcp 0 0 127.0.0.1:3002 0.0.0.0:* LISTEN 32272/stunnel
tcp 0 0 127.0.0.1:3003 0.02.0.0:* LISTEN 3 stunnel
tcp 0 0 127.0.0.1:3004 0.0.0.0:* LISTEN 32272/stunnel
tcp 0 0 127.0.0.1:3005 0.0.0.0:* LISTEN 32272/stunnel
tcp 0 0 127.0.0.1:3006 0.0.72.0:* /stunnel

当我使用 localhost (src/redis-cli -c -h localhost -p 3001) 连接时,我的连接成功。但是当我点击“获取密钥”时,它卡在以下
localhost:3001> 获取密钥
-> 重定向到位于 master3_url:3001 的插槽 [12539]

如果我将集群更改为单个分片和单个副本,则一切正常。使用多分片集群时我缺少什么设置。我的 Ec2 实例已打开以接受所有端口上的连接。Redis 集群已打开以接受来自所有端口上的 Ec2 实例的连接。

这是我关于stackoverflow的第一个问题:)

标签: amazon-web-servicesredis-clusterstunnel

解决方案


推荐阅读