public EurekaEndpointGroup build() {
        final WebClient webClient = buildWebClient();
        final WebClient client;
        if (webClient.as(RetryingClient.class) != null) {
            client = webClient;
        } else {
            final ClientOptions options = buildOptions(retryingClientOptions());
            final ClientBuilderParams params = clientBuilderParams(options);
            final ClientFactory factory = options.factory();
            client = (WebClient) factory.newClient(params);
        }
        final boolean allowEmptyEndpoints = dynamicEndpointGroupBuilder.shouldAllowEmptyEndpoints();
        final long selectionTimeoutMillis = dynamicEndpointGroupBuilder.selectionTimeoutMillis();
        return new EurekaEndpointGroup(selectionStrategy, allowEmptyEndpoints, selectionTimeoutMillis,
                                       client, registryFetchIntervalMillis, appName,
                                       instanceId, vipAddress, secureVipAddress, regions);
    }
Returns a newly-created {@link EurekaEndpointGroup} based on the properties set so far. Note that
if {@link RetryingClient} was not set using {@link #decorator(DecoratingHttpClientFunction)},
{@link RetryingClient} is applied automatically using
{@linkplain RetryingClient#newDecorator(RetryRule, int)
RetryingClient.newDecorator(RetryRule.failsafe(), 3)}.
eureka/src/main/java/com/linecorp/armeria/client/eureka/EurekaEndpointGroupBuilder.java