什么是 Netflix Feign?它的优点是什么?

发布于 2020-01-11 12:29:47
关注者
0
被浏览
3242
1 个回答
  • 面试哥
    面试哥 2020-01-11
    为面试而生,有面试问题,就找面试哥。

    Feign 是受到 Retrofit,JAXRS-2.0 和 WebSocket 启发的 java 客户端联编程序。Feign 的第一个目标是将约束分母的复杂性统一到 http apis,而不考虑其稳定性。在 employee-consumer 的例子中,我们使用了 employee-producer 使用 REST 模板公开的 REST 服务。

    但是我们必须编写大量代码才能执行以下步骤 使用功能区进行负载平衡。 获取服务实例,然后获取基本 URL。 利用 REST 模板来使用服务。 前面的代码如下

    @Controller
    public class ConsumerControllerClient {
    
    @Autowired
    private LoadBalancerClient loadBalancer;
    
    public void getEmployee() throws RestClientException, IOException {
    
    ServiceInstance serviceInstance=loadBalancer.choose("employee-producer");
    
     System.out.println(serviceInstance.getUri());
    
     String baseUrl=serviceInstance.getUri().toString();
    
     baseUrl=baseUrl+"/employee";
    
    RestTemplate restTemplate = new RestTemplate();
     ResponseEntity<String> response=null;
    try{
     response=restTemplate.exchange(baseUrl,
     HttpMethod.GET, getHeaders(),String.class);
    }catch (Exception ex)
     {
     System.out.println(ex);
    }
     System.out.println(response.getBody());
    }
    

    之前的代码,有像 NullPointer 这样的例外的机会,并不是最优的。我们将看到如何使用 Netflix Feign使呼叫变得更加轻松和清洁。如果 Netflix Ribbon 依赖关系也在类路径中,那么 Feign 默认也会负责负载平衡。

知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看