public ZoneAwareLoadBalancer<T> buildDynamicServerListLoadBalancer() {
        if (serverListImpl == null) {
            serverListImpl = createServerListFromConfig(config, factory);
        }
        if (rule == null) {
            rule = createRuleFromConfig(config, factory);
        }
        return new ZoneAwareLoadBalancer<T>(config, rule, ping, serverListImpl, serverListFilter);
    }
Build a {@link ZoneAwareLoadBalancer} with a dynamic {@link ServerList} and an {@link IRule}. The {@link ServerList} can be
either set in the {@link #withDynamicServerList(ServerList)} or in the {@link IClientConfig} using {@link CommonClientConfigKey#NIWSServerListClassName}.
The {@link IRule} can be either set by {@link #withRule(IRule)} or in the {@link IClientConfig} using
{@link CommonClientConfigKey#NFLoadBalancerRuleClassName}.
ribbon-loadbalancer/src/main/java/com/netflix/loadbalancer/LoadBalancerBuilder.java