protected final void removeEndpoint(Endpoint e) {
        final List<Endpoint> newEndpoints;
        endpointsLock.lock();
        try {
            final List<Endpoint> oldEndpoints = endpoints;
            if (!allowEmptyEndpoints && oldEndpoints.size() == 1) {
                return;
            }
            endpoints = newEndpoints = oldEndpoints.stream()
                                                   .filter(endpoint -> !endpoint.equals(e))
                                                   .collect(toImmutableList());
            if (endpoints.size() != oldEndpoints.size()) {
                logger.info("An endpoint has been removed: {}. Current endpoints: {}",
                            toShortString(e), toShortString(newEndpoints));
            }
        } finally {
            endpointsLock.unlock();
        }
        notifyListeners(newEndpoints);
    }
Removes the specified {@link Endpoint} from current {@link Endpoint} list.
core/src/main/java/com/linecorp/armeria/client/endpoint/DynamicEndpointGroup.java