1 流程图
2 主或者从发送异常不可连接后的场景
2.1 一个redis主不可以用了
2.2.1 key落在这个主
情况1:第一次随机猜节点,刚好命中这个坏的主节点(172.1.9.101:6507)
- 根据命令中的key获取连slot,判断slot在SlotsMap对应的连接是否存在,存在直接返回,如果不存在随机猜一个。
2)如果第一步步骤中拿到的节点,刚好命中这个坏的主节点(172.1.9.101:6507),尝试和error_master_node建立连接,超时连接异常。(第一次和172.1.9.101:6507连接超时)
2)catch捕捉到第1步骤的ConnectionException异常。
3)即将172.1.9.101:6507从连接pool中remove掉。
4)判断$failure == true,如果为真直接抛出ConnectionException异常结束。
5)如果$failure = false,从pool中(还剩五个),随机处理一个连接地址(172.1.9.101:6509),建立连接,执行cluster slots配置SlotsMap,