Package feign.ribbon

Class LoadBalancingTarget<T>

  • Type Parameters:
    T - corresponds to Target.type()
    All Implemented Interfaces:
    feign.Target<T>

    public class LoadBalancingTarget<T>
    extends java.lang.Object
    implements feign.Target<T>
    Basic integration for loadbalancer-aware targets. 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"))
     
    Where myAppProd is the ribbon loadbalancer name and myAppProd.ribbon.listOfServers configuration is set.
    • Nested Class Summary

      • Nested classes/interfaces inherited from interface feign.Target

        feign.Target.EmptyTarget<T extends java.lang.Object>, feign.Target.HardCodedTarget<T extends java.lang.Object>
    • Constructor Summary

      Constructors 
      Modifier Constructor Description
      protected LoadBalancingTarget​(java.lang.Class<T> type, java.lang.String scheme, java.lang.String name)
      Deprecated.
      protected LoadBalancingTarget​(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.Request apply​(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 a loadbalancer.
      boolean equals​(java.lang.Object obj)  
      int hashCode()  
      com.netflix.loadbalancer.AbstractLoadBalancer lb()
      current load balancer for the target.
      java.lang.String name()  
      java.lang.String toString()  
      java.lang.Class<T> type()  
      java.lang.String url()  
      • Methods inherited from class java.lang.Object

        clone, finalize, getClass, notify, notifyAll, wait, wait, wait
    • 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 a loadbalancer.
        Parameters:
        type - corresponds to Target.type()
        url - naming convention is https://name or http://name/api/v2 where name corresponds to ClientFactory.getNamedLoadBalancer(String)
      • type

        public java.lang.Class<T> type()
        Specified by:
        type in interface feign.Target<T>
      • name

        public java.lang.String name()
        Specified by:
        name in interface feign.Target<T>
      • url

        public java.lang.String url()
        Specified by:
        url in interface feign.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:
        apply in interface feign.Target<T>
      • equals

        public boolean equals​(java.lang.Object obj)
        Overrides:
        equals in class java.lang.Object
      • hashCode

        public int hashCode()
        Overrides:
        hashCode in class java.lang.Object
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object