[英]Jedis cannot find master using sentinel when sentinel required password
Recently i work with redis and using jedis.最近我使用 redis 并使用绝地武士。 In redis version 6, we can set required password mode for sentinels.
在 redis 版本 6 中,我们可以为哨兵设置所需的密码模式。 I have 3 working sentinels, can connect and authen throught redis-cli.
我有 3 个工作哨兵,可以通过 redis-cli 连接和验证。 But using jedis, i can't connect to the sentinel with this warning:
但使用绝地武士,我无法连接到哨兵这个警告:
Cannot get master address from sentinel running @ 127.0.0.1:26379.
无法从运行 @ 127.0.0.1:26379 的哨兵获取主地址。 Reason: redis.clients.jedis.exceptions.JedisDataException: NOAUTH Authentication required.. Trying next one.
原因:redis.clients.jedis.exceptions.JedisDataException: NOAUTH Authentication required.. 尝试下一个。
Cannot get master address from sentinel running @ 127.0.0.1:36379.
无法从运行 @ 127.0.0.1:36379 的哨兵获取主地址。 Reason: redis.clients.jedis.exceptions.JedisDataException: NOAUTH Authentication required.. Trying next one.
原因:redis.clients.jedis.exceptions.JedisDataException: NOAUTH Authentication required.. 尝试下一个。
Cannot get master address from sentinel running @ 127.0.0.1:16379.
无法从运行 @ 127.0.0.1:16379 的哨兵获取主地址。 Reason: redis.clients.jedis.exceptions.JedisDataException: NOAUTH Authentication required.. Trying next one.
原因:redis.clients.jedis.exceptions.JedisDataException: NOAUTH Authentication required.. 尝试下一个。
And this error:而这个错误:
All sentinels down, cannot determine where is mymaster master is running...
所有哨兵倒下,无法确定 mymaster 主控在哪里运行...
Here is my code:这是我的代码:
GenericObjectPoolConfig pc = new GenericObjectPoolConfig();
pc.setMinIdle(2);
pc.setMaxIdle(5);
pc.setMaxTotal(5);
JedisSentinelPool pool = new JedisSentinelPool(MASTER_NAME, sentinels, pc, 1000*10, PASSWORD);
Jedis jedis = null;
try {
printer("Fetching connection from pool");
jedis = pool.getResource();
printer("Authenticating...");
jedis.auth(PASSWORD);
printer("auth complete...");
Socket socket = jedis.getClient().getSocket();
printer("Connected to " + socket.getRemoteSocketAddress());
printer("Writing...");
jedis.set("java-key-999", "java-value-999");
printer("Reading...");
printer(jedis.get("java-key-999"));
} catch (JedisException e) {
printer("Connection error of some sort!");
printer(e.getMessage());
Thread.sleep(2 * 1000);
} finally {
if (jedis != null) {
jedis.close();
}
}
Please help, thank you for your reading support <3请帮忙,感谢您的阅读支持<3
Your sentinel nodes are password protected.您的哨兵节点受密码保护。 You would have to provide AUTH parameters to connect to sentinel nodes.
您必须提供 AUTH 参数才能连接到哨兵节点。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.