Ribbon和Feign的对比-带简易例子
Ribbon和Feign的对比
Ribbon和Feign都是SpringCloud中的基于 HTTP 和 TCP 客户端 的软负载均衡的工具。
Feign 是在 Ribbon的基础上进行了一次改进,是一个使用起来更加方便的 HTTP 客户端。
采用接口的方式, 只需要创建一个接口,然后在上面添加注解即可 ,将需要调用的其他服务的方法定义成抽象方法即可, 不需要自己构建http请求。
两者要实现负载均衡都需要依托于eureka注册中心但也可以不借助注册中心,这种方式还没有尝试过。
由一个简单的例子来说明
整体项目结构
eureka-server(注册中心)
eureka-service-b(服务提供者B)
eureka-service-b-api(服务提供者B标准API和基础POJO)
feign-client-demo(服务调用者-Feign方式)
ribbon-client-demo(服务调用者-Ribbon方式)
通过Ribbon,A来调用B的服务
服务提供者B中书写简易示例:
服务提供者不需要做额外配置,正常书写暴露API请求即可
服务调用者A中调用B的示例代码:
关键部分代码
TestController.java
@RestController
public class TestController {
@Autowired
private RestTemplate restTemplate;
private static final String REST_URL_PREFIX = "http://EUREKA-SERVICE-B";
@GetMapping("/ribbon/test"