@Override
  public synchronized void open(
      boolean enableRPCCompression,
      int connectionTimeoutInMs,
      Map<String, TEndPoint> deviceIdToEndpoint,
      INodeSupplier nodesSupplier)
      throws IoTDBConnectionException {
    if (!isClosed) {
      return;
    }

    this.availableNodes = nodesSupplier;
    this.enableRPCCompression = enableRPCCompression;
    this.connectionTimeoutInMs = connectionTimeoutInMs;
    defaultSessionConnection = constructSessionConnection(this, defaultEndPoint, zoneId);
    defaultSessionConnection.setEnableRedirect(enableQueryRedirection);
    isClosed = false;
    if (enableRedirection || enableQueryRedirection) {
      this.deviceIdToEndpoint = deviceIdToEndpoint;
      this.tableModelDeviceIdToEndpoint = new ConcurrentHashMap<>();
      endPointToSessionConnection = new ConcurrentHashMap<>();
      endPointToSessionConnection.put(defaultEndPoint, defaultSessionConnection);
    }
  }
Multiple nodeUrl,If one node down, connect to the next one

@param nodeUrls List<String> Multiple ip:rpcPort eg.127.0.0.1:9001
iotdb-client/session/src/main/java/org/apache/iotdb/session/Session.java