title: Spring Cloud: How to use Feign without Ribbon
body: <p>I would like to use Feign without client-side loadbalancer Ribbon because I don't want to run Eureka, which would need to be distributed and highly available. Instead internal ELBs with internal DNS names managed by Route53 will do just fine.</p>
  
  <p>Providing plain URLs to <code>@FeignClient</code> always results in <code>no loadbalancer found for ..</code>, so I tried preventing Feign from using Ribbon:</p>
  
  <p>Spring Cloud Netflix comes with <code>FeignRibbonClient</code>, which is used if <code>ILoadBalancer</code> from <code>ribbon-loadbalancer</code> is present. However, if this dependency is excluded <code>FeignConfiguration</code> is broken:</p>
  
  <pre><code>Bean creation exception on FactoryBean type check: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'apiVersionClient': Injection of autowired dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire field: feign.codec.Decoder org.springframework.cloud.netflix.feign.FeignConfiguration.decoder; nested exception is java.lang.ArrayStoreException: sun.reflect.annotation.TypeNotPresentExceptionProxy
  </code></pre>
  
  <p>Ideas welcome :-)</p>