Redis Sentinel从Slaves读取写入Master

pth*_*tha 5 redis jedis redis-sentinel

我们当前的Redis设置是一个Web应用程序客户端,使用Jedis直接连接一个JedisPool用于写入单个Redis主服务器,第二个JedisPool用于从单个Redis从服务器读取.从站设置为复制主站.

我们正在转向在客户端上使用JedisSentinelPool并引入Sentinel以更干净地处理故障转移.据我所知,似乎JedisSentinelPool只与当前选出的主设备通信,所以现在所有的写入/读取都转到主设备上.与之前读取可以分配给从属的情况相比.

有没有办法使用JedisSentinelPool将读取分配给从站以实现负载平衡?或者有必要使用JedisPool手动实现(如前所述)在这种情况下,如果主服务器失败,JedisSentinelPool现在将指向旧的从服务器(新主服务器),JedisPool仍然会笨拙地指向旧服务器,并且有效旧奴隶(新主人)现在会处理读写吗?

Redis Sentinel(或其他)是否具有任何负载平衡(而不是故障转移)功能?我们目前只有一个奴隶,可以添加更多的奴隶用于负载平衡吗?如果是这样,推荐的配置是什么?

任何建议,现实世界的经验将不胜感激.

小智 1

我写了一个新的JedisSentinelPool,可以从具有负载平衡的从站读取,从主站写入,它使用redis订阅从站,我在我的Web应用程序中使用它,请参阅代码github sentinel-slave-jedis-pool