哨兵建立新的链接Redis协调机制(哨兵 链接 redis)
Redis是当今市场上最受欢迎的开源键值存储应用程序之一。它使用高可用性和修补特性使其在分布式系统中更加可靠。Redis提供了几种机制来协调为了保障可用性。其中一种机制是哨兵模式。
I哨兵模式
哨兵模式是Redis可用性最常用的协调机制。Redis哨兵模式包括一些哨兵进程,它们创建一个特定的Redis实例(主节点)和若干从节点(通常是同一个主节点的其他实例)之间的关联。当主节点出现故障时,哨兵进程会检测到故障,并且会重新将从节点从旧的主节点转换为新的主节点,以确保应用程序可以继续操作,而不会中断。
哨兵进程的工作原理如下:哨兵进程会持续监控从和主节点,以检查任何宕机或进程问题,如果主节点宕机,哨兵会选择一个从节点并将其切换成新的主节点,所有客户端将对新主节点建立连接,所有的写操作将会被转发到新的主节点。
哨兵的工作需要在redis的配置文件中完成。必须指定所有哨兵进程所在的机器,以及主节点和从节点的IP地址和端口号。
另一方面,要在程序中实现哨兵模式,我们可以使用redis的客户端类库,比如Jedis。 Jedis提供了一个连接池,我们可以为连接池指定一组哨兵,运行时哨兵将查找可用主节点,并将其添加到连接池中,省去了我们需要为主节点手动构建连接的步骤。 Jedis的使用代码如下:
Set sentinels = new HashSet();
sentinels.add("ip1:port1"); sentinels.add("ip2:port2");
JedisSentinelPool pool = new JedisSentinelPool("masterName", sentinels); Jedis jedis = pool.getResource();
所以,Redis的哨兵模式可以使用配置文件或程序代码的方式来实现,使得失败的主节点可以快速无缝的迁移到新的主节点,以保证可用性。哨兵模式是Redis协调机制最常用的一种。