io.lettuce.core.redisexception cannot obtain initial redis cluster topology

问题描述

我正在研究生菜集群 Java 客户端。 它设置在螺栓拓扑(Apache Strom)中。 spout 正在从 kafka 读取数据并将其传递给 bolt。
但是,当我开始我的拓扑时,我收到以下错误消息并且程序终止。
报错代码:

29502 [Thread-17-RecommendationLettuceBolt-executor[2 2]] ERROR o.a.s.util - Async loop died! io.lettuce.core.RedisException: Cannot retrieve initial cluster partitions from initial URIs [RedisURI [host='127.0.0.1', port=7001]] at io.lettuce.core.cluster.RedisClusterClient.loadPartitions(RedisClusterClient.java:865) ~[lettuce-core-5.1.7.RELEASE.jar:?] at io.lettuce.core.cluster.RedisClusterClient.initializePartitions(RedisClusterClient.java:819) ~[lettuce-core-5.1.7.RELEASE.jar:?] at

报错原因及解决方法

因为我没有在我的机器上本地安装 redis 集群。 我使用这些步骤解决了redis.io/download 并运行以下命令安装

$ 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 //现在编译好的二进制文件在src目录下
$ src/redis 服务器

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

$ create-cluster start // 开始
$ create-cluster create // 创建集群
$ create-cluster stop // 用于停止
$ create-cluster clean // 清理所有集群

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

$ ps aux |grep redis
300067846 28222 0.6 0.0 4379932 2612 ?? Ss 7:41PM 0:00.73 ../../src/redis-server *:30004 [集群]
300067846 28227 0.5 0.0 4380956 2604 ?? Ss 7:41PM 0:00.71 ../../src/redis-server *:30006 [集群]
300067846 28218 0.4 0.0 4381980 2676 ?? Ss 7:41PM 0:00.73 ../../src/redis-server *:30002 [集群]
300067846 28216 0.4 0.0 4374812 2576 ?? Ss 7:41PM 0:00.50 ../../src/redis-server *:30001 [集群]
300067846 28225 0.4 0.0 4380956 2632 ?? Ss 7:41PM 0:00.68 ../../src/redis-server *:30005 [集群]
300067846 28220 0.3 0.0 4379932 2596 ?? Ss 7:41PM 0:00.52 ../../src/redis-server *:30003 [集群]
300067846 85550 0.0 0.0 4309420 1128 ?? S 3:08PM 0:07.76 redis 服务器 *:6379

查看所有主从节点
../redis-5.0.5/utils/create-cluster$ cat nodes-3000*.conf 您可以更新 Redis 集群配置。打开 vi create-cluster 并根据需要更新以下配置。

// 默认配置是这些
CLUSTER_HOST=127.0.0.1
端口=30000
超时=2000
        realmadrid_juejin
        Redis