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");
3人の歩哨をそこに持っている場合は、その3つのMasterListener.Whenのフェイルオーバーが発生し、jedisクライアントは各MasterListenerについて3回initPoolます作成しました。
質問は、なぜinitPoolは一度だけではないのですか? sentinel客観的なオフラインマスター、その後、jedisクライアントは、再initPoolにメッセージを受け取りますか?