diff --git a/ribbon-loadbalancer/src/main/java/com/netflix/client/ClientFactory.java b/ribbon-loadbalancer/src/main/java/com/netflix/client/ClientFactory.java index 61e8cb7f..6e0a2964 100644 --- a/ribbon-loadbalancer/src/main/java/com/netflix/client/ClientFactory.java +++ b/ribbon-loadbalancer/src/main/java/com/netflix/client/ClientFactory.java @@ -169,6 +169,24 @@ public static synchronized ILoadBalancer getNamedLoadBalancer(String name, Class } } + /** + * Get the load balancer associated with the name, or create one with the given clientConfig if does not exist + * + * @throws RuntimeException if any error occurs + * @see #registerNamedLoadBalancerFromclientConfig(String, IClientConfig) + */ + public static synchronized ILoadBalancer getNamedLoadBalancer(String name, IClientConfig clientConfig) { + ILoadBalancer lb = namedLBMap.get(name); + if (lb == null) { + try { + lb = registerNamedLoadBalancerFromclientConfig(name, clientConfig); + } catch (ClientException e) { + throw new RuntimeException("Unable to create load balancer", e); + } + } + return lb; + } + /** * Create and register a load balancer with the name and given the class of configClass. *