20
2020
03

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

 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 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默认也会负责负载平衡。

« 上一篇 下一篇 »

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。