参考答案
Feign 是受到 Retrofit、JAXRS-2.0 和 WebSocket 启发的 Java 客户端联编程序。
Feign 的第一个目标是将约束分母的复杂性统一到 http apis,而不考虑其稳定性。
但是,我们必须编写大量代码,才能执行以下步骤:
- 使用功能区进行负载平衡。
- 获取服务实例,然后获取基本 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()); } }
使用 Netflix Feign,使呼叫变得更加轻松和清洁。
如果Netflix Ribbon 依赖关系也在类路径中,那么 Feign 默认也会负责负载平衡。
以上,是Spring Cloud面试题【什么是 Netflix Feign?它的优点是什么】的参考答案。
输出,是最好的学习方法。
欢迎在评论区留下你的问题、笔记或知识点补充~
—end—