天天看點

SpringCloud 之Ribbon、Feign、OpenFeign的差別RibbonFeignOpenFeign

Ribbon

Ribbon 是 Netflix 開源的基于HTTP和TCP等協定負載均衡元件

Ribbon 可以用來做用戶端負載均衡,調用注冊中心的服務

Ribbon的使用需要代碼裡手動調用目标服務

Feign

Feign是Spring Cloud元件中的一個輕量級RESTful的HTTP服務用戶端

Feign内置了Ribbon,用來做用戶端負載均衡,去調用服務注冊中心的服務

Feign的使用方式是:使用Feign的注解定義接口,調用這個接口,就可以調用服務注冊中心的服務

Feign本身不支援Spring MVC的注解,它有一套自己的注解

OpenFeign

OpenFeign是Spring Cloud 在Feign的基礎上支援了Spring MVC的注解,如@RequesMapping等等

OpenFeign的@FeignClient可以解析SpringMVC的@RequestMapping注解下的接口

并通過動态代理的方式産生實作類,實作類中做負載均衡并調用其他服務