【异常】阿里云ECS自己搭建Redis集群,不停的出现JedisCluster连接超时的问题

前提说明:

服务环境,用的是阿里云的 ECS云服务。 共用三台服务,用docker 搭建 3 主3 从共6个集群环境。 使用springCloud做分布式框架。 使用 lettuce 做连接池。

安装搭建参考:
【SpringCloud分布式框架搭建】docker-compose安装redis5 集群。并集成到springCloud中


错误信息如下:

org.springframework.dao.DataAccessResourceFailureException: Unable to connect to 172.16.75.43:6300; nested exception is io.lettuce.core.RedisConnectionException: Unable to connect to 172.16.75.43:6300
	at org.springframework.data.redis.connection.lettuce.LettuceClusterConnection$LettuceClusterNodeResourceProvider.getResourceForSpecificNode(LettuceClusterConnection.java:697) ~[spring-data-redis-2.1.10.RELEASE.jar!/:2.1.10.RELEASE]
	at org.springframework.data.redis.connection.lettuce.LettuceClusterConnection$LettuceClusterNodeResourceProvider.getResourceForSpecificNode(LettuceClusterConnection.java:674) ~[spring-data-redis-2.1.10.RELEASE.jar!/:2.1.10.RELEASE]
	at org.springframework.data.redis.connection.ClusterCommandExecutor.executeCommandOnSingleNode(ClusterCommandExecutor.java:140) ~[spring-data-redis-2.1.10.RELEASE.jar!/:2.1.10.RELEASE]
	at org.springframework.data.redis.connection.ClusterCommandExecutor.executeCommandOnSingleNode(ClusterCommandExecutor.java:123) ~[spring-data-redis-2.1.10.RELEASE.jar!/:2.1.10.RELEASE]
	at org.springframework.data.redis.connection.ClusterCommandExecutor.executeCommandOnArbitraryNode(ClusterCommandExecutor.java:111) ~[spring-data-redis-2.1.10.RELEASE.jar!/:2.1.10.RELEASE]
	at org.springframework.data.redis.connection.lettuce.LettuceClusterServerCommands.time(LettuceClusterServerCommands.java:317) ~[spring-data-redis-2.1.10.RELEASE.jar!/:2.1.10.RELEASE]
	at org.springframework.data.redis.connection.DefaultedRedisConnection.time(DefaultedRedisConnection.java:1218) ~[spring-data-redis-2.1.10.RELEASE.jar!/:2.1.10.RELEASE]
	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source) ~[na:na]
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_232]
	at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_232]
	at org.springframework.data.redis.core.CloseSuppressingInvocationHandler.invoke(CloseSuppressingInvocationHandler.java:61) ~[spring-data-redis-2.1.10.RELEASE.jar!/:2.1.10.RELEASE]
	at com.sun.proxy.$Proxy208.time(Unknown Source) ~[na:na]
	at com.keda.util.redis.RedisService$1.doInRedis(RedisService.java:840) ~[keda-util-1.1.2.jar!/:na]
	at org.springframework.data.redis.core.RedisTemplate.execute(RedisTemplate.java:224) ~[spring-data-redis-2.1.10.RELEASE.jar!/:2.1.10.RELEASE]
	at org.springframework.data.redis.core.RedisTemplate.execute(RedisTemplate.java:184) ~[spring-data-redis-2.1.10.RELEASE.jar!/:2.1.10.RELEASE]
	at org.springframework.data.redis.core.RedisTemplate.execute(RedisTemplate.java:171) ~[spring-data-redis-2.1.10.RELEASE.jar!/:2.1.10.RELEASE]
	at com.keda.util.redis.RedisService.currtTimeForRedis(RedisService.java:837) ~[keda-util-1.1.2.jar!/:na]
	at com.keda.util.redis.RedisService.getNowLocalDateTime(RedisService.java:873) ~[keda-util-1.1.2.jar!/:na]
	at com.keda.orderbuy.scheduled.timeTask.myTask(timeTask.java:50) ~[classes!/:0.0.1-SNAPSHOT]
	at com.keda.or
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
为在阿里云上搭建 Docker Redis 集群,您可以按照以下步骤进行操作: 1. 创建阿里云 ECS 实例:首先,登录阿里云控制台,创建至少3个 ECS 实例作为 Redis 集群的节点。确保这些实例之间可以通过内网IP相互通信。 2. 安装 Docker:在每个 ECS 实例上安装 Docker。您可以参考阿里云官方文档提供的方法来完成安装。 3. 创建 Docker 网络:使用以下命令在每个 ECS 实例上创建一个 Docker 网络: ```shell docker network create redisnet ``` 4. 下载 Redis 镜像:在每个 ECS 实例上执行以下命令,下载 Redis 镜像: ```shell docker pull redis ``` 5. 运行 Redis 容器:在每个 ECS 实例上执行以下命令,启动 Redis 容器,并加入到之前创建的 Docker 网络中: ```shell docker run -d --name redis1 --net redisnet redis docker run -d --name redis2 --net redisnet redis docker run -d --name redis3 --net redisnet redis ``` 这将分别在每个 ECS 实例上启动3个 Redis 容器。 6. 配置 Redis 集群:在任一 ECS 实例上执行以下命令,配置 Redis 集群: ```shell docker exec -it redis1 redis-cli --cluster create <节点1IP:端口> <节点2IP:端口> <节点3IP:端口> --cluster-replicas 1 ``` 请将 `<节点1IP:端口>`、 `<节点2IP:端口>`、 `<节点3IP:端口>` 替换为您实际的 ECS 实例的 IP 地址和 Redis 运行端口。 7. 验证 Redis 集群:您可以执行以下命令验证 Redis 集群是否正常工作: ```shell docker exec -it redis1 redis-cli cluster info ``` 如果一切正常,您应该能够看到有关 Redis 集群的信息。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值