private static List<Endpoint> loadEndpoints(Path path, String endpointKeyPrefix, int defaultPort) {
        try (InputStream in = Files.newInputStream(path)) {
            final Properties props = new Properties();
            props.load(in);
            return loadEndpoints(props, endpointKeyPrefix, defaultPort);
        } catch (IOException e) {
            throw new IllegalArgumentException("failed to load: " + path, e);
        }
    }
Returns a new {@link PropertiesEndpointGroupBuilder} created from the file at the specified
{@link Path}. Any updates in the file will trigger a dynamic reload. The value of each property
whose name starts with {@code endpointKeyPrefix} will be parsed with {@link Endpoint#parse(String)},
and then loaded into the {@link PropertiesEndpointGroup}, e.g.

<pre>{@code
# endpointKeyPrefix = 'example.hosts.'
example.hosts.0=example1.com:36462
example.hosts.1=example2.com:36462
example.hosts.2=example3.com:36462
}</pre>

@param path the path of the file where list of {@link Endpoint}s is loaded from
@param endpointKeyPrefix the property name prefix
core/src/main/java/com/linecorp/armeria/client/endpoint/PropertiesEndpointGroup.java