code: public static PropertiesEndpointGroup of(Properties properties, String endpointKeyPrefix) {
          return new PropertiesEndpointGroup(loadEndpoints(
                  requireNonNull(properties, "properties"),
                  requireNonNull(endpointKeyPrefix, "endpointKeyPrefix"),
                  0));
      }
docs: Creates a new {@link EndpointGroup} instance that loads the host names (or IP address) and the port
  numbers of the {@link Endpoint} from the {@link Properties}. The {@link Properties} must contain at
  least one property whose name starts with {@code endpointKeyPrefix}:
  
  <pre>{@code
  example.hosts.0=example1.com:36462
  example.hosts.1=example2.com:36462
  example.hosts.2=example3.com:36462
  }</pre>
  
  @param properties the {@link Properties} where the list of {@link Endpoint}s is loaded from
  @param endpointKeyPrefix the property name prefix
  
  @throws IllegalArgumentException if failed to load any hosts from the specified {@link Properties}