0
jedis SRC 코드 MasterListener 방법 실행 :jedis MasterListener initPool 여러 번
j.subscribe(new JedisPubSub() {
@Override
public void onMessage(String channel, String message) {
log.fine("Sentinel " + host + ":" + port + " published: " + message + ".");
String[] switchMasterMsg = message.split(" ");
if (switchMasterMsg.length > 3) {
if (masterName.equals(switchMasterMsg[0])) {
initPool(toHostAndPort(Arrays.asList(switchMasterMsg[3], switchMasterMsg[4])));
} else {
log.fine("Ignoring message on +switch-master for master name "
+ switchMasterMsg[0] + ", our master name is " + masterName);
}
} else {
log.severe("Invalid message received on Sentinel " + host + ":" + port
+ " on channel +switch-master: " + message);
}
}
}, "+switch-master");
세 센티넬, 그래서 jedis 클라이언트는 각 MasterListener 3 회를 initPool 것, 세 MasterListener.When 장애 조치가 발생 생성이있는 경우.
질문은 : 단지 initPool이 아닌 이유는 무엇입니까? sentinel 객관적인 오프라인 마스터, 다음 jedis 클라이언트가 다시 initPool 메시지를받을 때?