服务消费者Feign和Ribbon的区别

1、Ribbon通过注解@EnableEurekaClient/@EnableDiscoveryClient向服务中心注册;    PS:选用的注册中心是eureka,那么就推荐@EnableEurekaClient,如果是其他的注册中心,那么推荐使用@EnableDiscoveryClient

     Feign通过注解@EnableFeignClients向服务中心注册

2、Ribbon没有负载均衡功能,只能通过@Bean注入bean---RestTemplate,并通过注解@LoadBalanced开启负载均衡功能;

     Feign默认集成了Ribbon,并和Eureka结合,默认实现了负载均衡的效果

3、Ribbon使用restTemplate.getForObject("http://服务名/.....")方法调用服务

   Feign可直接在接口上使用注解@ FeignClient(“服务名”)和方法上使用@RequestMapping(value = "/URL")来调用服务

4、Ribbon+断路器,使用@HystrixCommand(fallbackMethod = "方法名")对方法创建熔断器的功能,并指定了fallbackMethod熔断方法

      Feign+断路器,Feign自带断路器,只需要在接口上的注解@ FeignClient(value = “服务名”)加上fallback的指定类就行了,该类实现此接口并使用注解@Component注入到Ioc容器中即可

原文地址:https://www.cnblogs.com/java-spring/p/9765076.html