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

Feign 是受到 Retrofit,JAXRS-2.0  WebSocket 启发的 java 客户端联编程序

Feign 的第一个目标是将约束分母的复杂性统一到 http apis,而不考虑其稳定性

 employee-consumer 的例子中我们使用了 employee-producer 使用 REST

模板公开的 REST 服务

但是我们必须编写大量代码才能执行以下步骤 

1、使用功能区进行负载平衡

2、获取服务实例然后获取基本 URL。

3、利用 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 默认也会负责负载平衡

相关文章