static URI normalize(String uri, ClickHouseProtocol defaultProtocol) {
        int index = ClickHouseChecker.nonEmpty(uri, "URI").indexOf(SCHEME_DELIMITER);
        String normalized;
        if (index < 0) {
            normalized = new StringBuilder()
                    .append((defaultProtocol != null ? defaultProtocol : ClickHouseProtocol.ANY).name()
                            .toLowerCase(Locale.ROOT))
                    .append(SCHEME_DELIMITER)
                    .append(uri.trim()).toString();
        } else {
            normalized = uri.trim();
        }
        return cache.computeIfAbsent(normalized, k -> {
            try {
                return new URI(k);
            } catch (URISyntaxException e) {
                throw new IllegalArgumentException("Invalid URI", e);
            }
        });
    }
Creates a new node.

@return new node
clickhouse-client/src/main/java/com/clickhouse/client/ClickHouseNode.java