ribbon

ribbon是一种基于http和tcp客户端的负载均衡器

feign

feign是一种使用起来更简单的http客户端,ribbon和feign都支持软负载均衡

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

ribbon和feign都是用来调用其他服务的,不过方式不一样

1,启动类使用的注解不一样,ribbon使用@RibbonClient, feign使用@EnableFeignClient

2,  服务的指定位置不同,ribbon是在@RibbonClient注解上声明,feign是在定义抽象方法的接口上加@FeignClient注解

3,调用方式不同,ribbon需要自己构建http请求,模拟http请求使用RestTemplate发送给其他服务,步骤繁琐,feign是在ribbpon上做了改进,使用接口的方式,将需要调用的其他服务的方法定义成抽象方法,不需要构建http请求。注意:抽象方法的注解要和服务提供方保持一致

在微服务中,服务与服务之间的调用,是采用http restful方式,springcloud的微服务调用有两种方式,1,ribbon+restTemplate   2,feign

 创建服务消费者

@LoadBalanced注解表明restTemplate开启负载均衡    

通过restTemplate接口调用其他服务

 

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐