From b4538a147a361930d8efdc17a80c68d509cedf16 Mon Sep 17 00:00:00 2001 From: Savonitar Date: Wed, 2 Sep 2020 19:46:34 +0300 Subject: [PATCH] Add possibility to get ILoadBalancer by name and instance of IClientConfig --- .../java/com/netflix/client/ClientFactory.java | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) 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. *