Ribbon 和 Feign 的区别

Ribbon 和 Feign 的区别

spring cloud的 Netflix 中提供了两个组件实现软负载均衡调用:ribbon 和 feign 。

 

Ribbon

是一个基于 HTTP 和 TCP 客户端 的负载均衡的工具。

它可以 在客户端 配置 RibbonServerList(服务端列表),使用 HttpClient 或 RestTemplate 模拟http请求,步骤相当繁琐。

服务间的调用,需要开启负载均衡,需要开启熔断机制

Ribbon 和 Feign 的区别_第1张图片

 

Feign

Feign 是在 Ribbon的基础上进行了一次改进,是一个使用起来更加方便的 HTTP 客户端。

 

采用接口的方式, 只需要创建一个接口,然后在上面添加注解即可 ,将需要调用的其他服务的方法定义成抽象方法即可, 不需要自己构建http请求。

 

然后就像是调用自身工程的方法调用,而感觉不到是调用远程方法,使得编写 客户端变得非常容易。

类似于 mybatis 的 @Mapper注解 。

注意:spring-cloud-starter-feign 里面已经包含了 spring-cloud-starter-ribbon(Feign 中也使用了 Ribbon)

可以说是ribbon的升级版,自带负载均衡,自带熔断机制

1.config:配置熔断监控仪表盘

2.controller:服务消费controller,调用service方法

3.hystrix:熔断回调方法

4.service:@FeignClient,指定服务提供者,指定回调方法(重点)

Ribbon 和 Feign 的区别_第2张图片

 

你可能感兴趣的:(Ribbon 和 Feign 的区别)