Skip to content

Latest commit

 

History

History
 
 

ribbon

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 

Ribbon

This module includes a feign Target and Client adapter to take advantage of Ribbon.

Conventions

This integration relies on the Feign Target.url() being encoded like https://myAppProd where myAppProd is the ribbon client or loadbalancer name and myAppProd.ribbon.listOfServers configuration is set.

RibbonClient

Adding RibbonClient overrides URL resolution of Feign's client, adding smart routing and resiliency capabilities provided by Ribbon.

Usage

instead of 

MyService api = Feign.builder().target(MyService.class, "https://myAppProd-1234567890.us-east-1.elb.amazonaws.com");

do

MyService api = Feign.builder().client(RibbonClient.create()).target(MyService.class, "https://myAppProd");

LoadBalancingTarget

Using or extending LoadBalancingTarget will enable dynamic url discovery via ribbon including incrementing server request counts.

Usage

instead of

MyService api = Feign.builder().target(MyService.class, "https://myAppProd-1234567890.us-east-1.elb.amazonaws.com");

do

MyService api = Feign.builder().target(LoadBalancingTarget.create(MyService.class, "https://myAppProd"));