当我尝试配置 Redisson 时,我不断收到此错误。
org.redisson.client.RedisConnectionException: Can't connect to servers!
Caused by: io.netty.channel.ConnectTimeoutException: connection timed out:
不能在我的本地机器上使用带有 Redisson 的 Elasticache 吗?我还有什么其他选择?Azure 允许这样做吗?
当我尝试配置 Redisson 时,我不断收到此错误。
org.redisson.client.RedisConnectionException: Can't connect to servers!
Caused by: io.netty.channel.ConnectTimeoutException: connection timed out:
不能在我的本地机器上使用带有 Redisson 的 Elasticache 吗?我还有什么其他选择?Azure 允许这样做吗?
如果您尝试从 AWS 外部的本地计算机连接到 ElastiCache,您需要在与 ElastiCache 集群相同的 VPC 中创建一个网络地址转换 (NAT) 实例,并从您的应用程序连接到 NAT 实例。NAT 实例充当您的应用程序和 Elasticache 集群之间的代理。这些是步骤 -
为 NAT 实例和 ElastiCache 集群创建以下安全组规则 -
将 iptables 规则添加到 NAT 实例。必须添加 iptables 规则才能将缓存端口从 NAT 实例转发到集群节点。集群中的每个节点都应该有一个规则。Redis 的示例可能如下所示:
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 6379 -j DNAT --to <cluster-node-ip>:6379
可以在此处找到更多信息 - http://docs.aws.amazon.com/AmazonElastiCache/latest/UserGuide/Access.Outside.html
另一种方法是将包含 Redisson 客户端的应用程序部署在 EC2 实例上(最好在与 ElastiCache 相同的 VPC 中)。然后,您可以从该应用程序连接到 ElastiCache。