搭建高性能集群报JedisNoReachableClusterNodeException异常(No reachable node in cluster)

最近在搭建Redis高性能集群时,报如下错误

SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.

Exception in thread "main" redis.clients.jedis.exceptions.JedisNoReachableClusterNodeException: No reachable node in cluster
    at redis.clients.jedis.JedisSlotBasedConnectionHandler.getConnection(JedisSlotBasedConnectionHandler.java:61)
    at redis.clients.jedis.JedisSlotBasedConnectionHandler.getConnectionFromSlot(JedisSlotBasedConnectionHandler.java:78)
    at redis.clients.jedis.JedisClusterCommand.runWithRetries(JedisClusterCommand.java:102)
    at redis.clients.jedis.JedisClusterCommand.run(JedisClusterCommand.java:25)
    at redis.clients.jedis.JedisCluster.set(JedisCluster.java:112)
    at com.rpc.demo.XXX.main(XXX.java:30)

Process finished with exit code 1

根据错误提示

第一,需要导入slf4j的jar包和依赖包

<dependency>
  <groupId>redis.clients</groupId>
  <artifactId>jedis</artifactId>
  <version>3.0.0</version>
</dependency>

<dependency>
  <groupId>org.slf4j</groupId>
  <artifactId>slf4j-api</artifactId>
  <version>1.7.25</version>
</dependency>

<dependency>
  <groupId>org.slf4j</groupId>
  <artifactId>slf4j-log4j12</artifactId>
  <version>1.7.3</version>
</dependency>

第二,导入jar包以后,还报

Exception in thread "main" redis.clients.jedis.exceptions.JedisNoReachableClusterNodeException: No reachable node in cluster这个错误?

这是为什么呢?

测试原代码是

package com.rpc.demo.util;

import java.io.IOException;
import java.util.HashSet;
import java.util.Set;
import redis.clients.jedis.HostAndPort;
import redis.clients.jedis.JedisCluster;
import redis.clients.jedis.JedisPoolConfig;


/**
 ⦁ 访问redis集群
 ⦁ @author zsf
 ⦁ 
 */
public class RedisCluster
{
    public static void main(String[] args) throws IOException {
        Set<HostAndPort> jedisClusterNode = new HashSet<HostAndPort>();
        jedisClusterNode.add(new HostAndPort("192.168.213.131", 8001));
        jedisClusterNode.add(new HostAndPort("192.168.213.131", 8002));
        jedisClusterNode.add(new HostAndPort("192.168.213.131", 8003));
        jedisClusterNode.add(new HostAndPort("192.168.213.131", 8004));
        jedisClusterNode.add(new HostAndPort("192.168.213.131", 8005));
        jedisClusterNode.add(new HostAndPort("192.168.213.131", 8006));

        JedisPoolConfig config = new JedisPoolConfig();
        config.setMaxTotal(100);
        config.setMaxIdle(10);
        config.setTestOnBorrow(true);
        JedisCluster jedisCluster = new JedisCluster(jedisClusterNode, 6000, 10,
                config);
        System.out.println(jedisCluster.set("student", "zsf"));
        System.out.println(jedisCluster.set("age", "18"));
        System.out.println(jedisCluster.get("student"));
        System.out.println(jedisCluster.get("age"));
        jedisCluster.close();
    }
}

试了网上好多方法,都不行,这是什么原因呢?

 试了试,能不能拼通吧,ping 192.168.213.131,能拼通!

突然想起,是不是192.168.213.131这台机器上防火墙,没有放开端口啊?机器上安装是centos7,于是把防火墙直接关了。

[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]# firewall-cmd --state

然后再运行,居然好了!
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值