Ribbon
- Ribbon 是 Netflix开源的
基于HTTP和TCP等协议负载均衡组件
。 - Ribbon 可以用来做客户端负载均衡,调用注册中心的服务。
- Ribbon的使用需要代码里手动调用目标服务,请参考官方示例:https://github.com/Netflix/ribbon
Feign
- Feign是Spring Cloud组件中的一个轻量级
RESTful
的HTTP
服务客户端。 - Feign内置了Ribbon,用来做
客户端负载均衡
,去调用服务注册中心的服务。 - Feign的使用方式是:使用
Feign的注解
定义接口,调用这个接口,就可以调用服务注册中心的服务。 - Feign支持的注解和用法请参考官方文档:https://github.com/OpenFeign/feign
- Feign本身不支持Spring MVC的注解,它有一套自己的注解。
OpenFeign
- OpenFeign是Spring Cloud 在Feign的基础上支持了Spring MVC的注解,如
@RequesMapping
等等。 - OpenFeign的
@FeignClient
可以解析SpringMVC的@RequestMapping
注解下的接口,并通过动态代理的方式产生实现类,实现类中做负载均衡并调用其他服务。