为了账号安全,请及时绑定邮箱和手机立即绑定

无法从初始 URI [RedisURI [host='127.0.0.1', port=7001]]

无法从初始 URI [RedisURI [host='127.0.0.1', port=7001]]

慕侠2389804 2023-04-19 15:50:51
我正在研究 Lettuce 集群 Java 客户端。它在拓扑结构 (Apache Strom) 中设置bolt。spout正在从 读取数据kafka并将其传递给bolt。但是,当我开始我的拓扑时,我收到以下错误消息并且程序终止。我错过了什么吗?是什么原因造成的?堆栈跟踪29502 [Thread-17-RecommendationLettuceBolt-executor[2 2]] 错误 oasutil - 异步循环已死!io.lettuce.core.RedisException:无法从 io.lettuce.core.cluster.RedisClusterClient.loadPartitions(RedisClusterClient.java:865)的初始 URI [RedisURI [host='127.0.0.1', port=7001]] 检索初始集群分区) ~[lettuce-core-5.1.7.RELEASE.jar:?] 在 io.lettuce.core.cluster.RedisClusterClient.initializePartitions(RedisClusterClient.java:819) ~[lettuce-core-5.1.7.RELEASE.jar: ?] 在 io.lettuce.core.cluster.RedisClusterClient.connect(RedisClusterClient.java:345) ~[lettuce-core-5.1.7.RELEASE.jar:?] 在 com.projectName.indexer.lettuce.LettuceClusterClientProvider.getConnection( LettuceClusterClientProvider.java:72) ~[classes/:?] 在 com.projectName.indexer.lettuce.LettuceCacheRepopulationHandler。输入代码private void init() {       redisUri = RedisURI.Builder                .redis(lettuceConfig.getLettuceClusterHost())                .withPort(lettuceConfig.getLettuceClusterPort())                .withTimeout(Duration.ofMillis(lettuceConfig.getLettuceClusterTimeout()))                .build();}public StatefulRedisClusterConnection getConnection() {        if (connection == null || !connection.isOpen()) {            redisClusterClient = RedisClusterClient.create(redisUri);            final ClusterTopologyRefreshOptions topologyRefreshOptions = ClusterTopologyRefreshOptions.builder()                    .enablePeriodicRefresh(Duration.ofMinutes(BoltConstants.Lettuce.PERIODIC_REFRESH_TIME_IN_MIN))                    .enableAdaptiveRefreshTrigger()                    .build();            final ClusterClientOptions clusterClientOptions = ClusterClientOptions.builder()                    .autoReconnect(true)                    .topologyRefreshOptions(topologyRefreshOptions)                    .build();        }        return connection;    }环境compile 'io.lettuce:lettuce-core:5.1.7.RELEASE'
查看完整描述

1 回答

?
郎朗坤

TA贡献1921条经验 获得超9个赞

错误来了,因为我没有在我的机器上本地安装redis 集群

我使用这些步骤解决了

https://redis.io/ 下载并运行以下命令安装

$ wget http://download.redis.io/releases/redis-5.0.5.tar.gz

$ tar xzf redis-5.0.5.tar.gz

$ cd redis-5.0.5

$ make //The binaries that are now compiled are available in the src directory

$ src/redis-server

使用 create-cluster 脚本创建 Redis 集群

现在检查redis-5.0.5/utils/create-clusterRedis 发行版中的目录。里面有一个脚本create-cluster,它是一个简单的 bash 脚本。为了启动一个具有 3 个主节点和 3 个从节点的 6 节点集群,只需键入以下命令:


$ create-cluster start  // start 

$ create-cluster create // create cluster


$ create-cluster stop // for stoping 

$ create-cluster clean // clean all the cluster

您将在终端中看到以下输出


$ ps aux |grep redis

300067846        28222   0.6  0.0  4379932   2612   ??  Ss    7:41PM   0:00.73 ../../src/redis-server *:30004 [cluster]                  

300067846        28227   0.5  0.0  4380956   2604   ??  Ss    7:41PM   0:00.71 ../../src/redis-server *:30006 [cluster]                  

300067846        28218   0.4  0.0  4381980   2676   ??  Ss    7:41PM   0:00.73 ../../src/redis-server *:30002 [cluster]                  

300067846        28216   0.4  0.0  4374812   2576   ??  Ss    7:41PM   0:00.50 ../../src/redis-server *:30001 [cluster]                  

300067846        28225   0.4  0.0  4380956   2632   ??  Ss    7:41PM   0:00.68 ../../src/redis-server *:30005 [cluster]                  

300067846        28220   0.3  0.0  4379932   2596   ??  Ss    7:41PM   0:00.52 ../../src/redis-server *:30003 [cluster]                  

300067846        85550   0.0  0.0  4309420   1128   ??  S     3:08PM   0:07.76 redis-server *:6379

查看所有主从节点


../redis-5.0.5/utils/create-cluster$ cat nodes-3000*.conf

您可以更新 Redis 集群配置。vi create-cluster根据需要打开并更新以下配置。


// default config are these 

CLUSTER_HOST=127.0.0.1

PORT=30000

TIMEOUT=2000

NODES=6

REPLICAS=1


查看完整回答
反对 回复 2023-04-19
  • 1 回答
  • 0 关注
  • 93 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信