Package feign.ribbon
Class LoadBalancingTarget<T>
- java.lang.Object
-
- feign.ribbon.LoadBalancingTarget<T>
-
- Type Parameters:
T- corresponds toTarget.type()
- All Implemented Interfaces:
feign.Target<T>
public class LoadBalancingTarget<T> extends java.lang.Object implements feign.Target<T>Basic integration forloadbalancer-awaretargets. Using this will enable dynamic url discovery via ribbon including incrementing server request counts.
Ex.MyService api = Feign.builder().target(LoadBalancingTarget.create(MyService.class, "http://myAppProd"))
WheremyAppProdis the ribbon loadbalancer name andmyAppProd.ribbon.listOfServersconfiguration is set.
-
-
Constructor Summary
Constructors Modifier Constructor Description protectedLoadBalancingTarget(java.lang.Class<T> type, java.lang.String scheme, java.lang.String name)Deprecated.protectedLoadBalancingTarget(java.lang.Class<T> type, java.lang.String scheme, java.lang.String name, java.lang.String path)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description feign.Requestapply(feign.RequestTemplate input)static <T> LoadBalancingTarget<T>create(java.lang.Class<T> type, java.lang.String url)Creates a target which dynamically derives urls from aloadbalancer.booleanequals(java.lang.Object obj)inthashCode()com.netflix.loadbalancer.AbstractLoadBalancerlb()current load balancer for the target.java.lang.Stringname()java.lang.StringtoString()java.lang.Class<T>type()java.lang.Stringurl()
-
-
-
Constructor Detail
-
LoadBalancingTarget
@Deprecated protected LoadBalancingTarget(java.lang.Class<T> type, java.lang.String scheme, java.lang.String name)
Deprecated.
-
LoadBalancingTarget
protected LoadBalancingTarget(java.lang.Class<T> type, java.lang.String scheme, java.lang.String name, java.lang.String path)
-
-
Method Detail
-
create
public static <T> LoadBalancingTarget<T> create(java.lang.Class<T> type, java.lang.String url)
Creates a target which dynamically derives urls from aloadbalancer.- Parameters:
type- corresponds toTarget.type()url- naming convention ishttps://nameorhttp://name/api/v2where name corresponds toClientFactory.getNamedLoadBalancer(String)
-
name
public java.lang.String name()
- Specified by:
namein interfacefeign.Target<T>
-
url
public java.lang.String url()
- Specified by:
urlin interfacefeign.Target<T>
-
lb
public com.netflix.loadbalancer.AbstractLoadBalancer lb()
current load balancer for the target.
-
apply
public feign.Request apply(feign.RequestTemplate input)
- Specified by:
applyin interfacefeign.Target<T>
-
equals
public boolean equals(java.lang.Object obj)
- Overrides:
equalsin classjava.lang.Object
-
hashCode
public int hashCode()
- Overrides:
hashCodein classjava.lang.Object
-
toString
public java.lang.String toString()
- Overrides:
toStringin classjava.lang.Object
-
-