feign远程调用&基于Http的RestTemplate

时间:2024-04-09 09:12:50

基于Http的RestTemplate远程调用

在springcloud微服务的实际项目开发中,多个微服务之间不仅是相对独立的,而且也是相对关联的;
微服务之间需要相互访问,多个微服务之间的接口可能会被互相多次调用,我们称之为微服务之间的通信;

常用的方式有两种:

  • RPC------代表–dubbo
  • HTTP---------代表–springcloud

springcloud中,默认是使用http来进行微服务的通信,最常用的实现形式有两种

  • 基于http的RestTemplate
  • Feign

基于Http的RestTemplate远程调用方式,需要每个请求都拼接url+参数+类文件

  • 规定了数据传输的格式。基于网络七层中的应用层,浏览器与服务器较普遍采用,灵活性高但消息封装臃肿springcloud是其代表

feign远程调用

feign:远程调用组件(集成了ribbon)

1、描述

  • 可以将Rest的请求进行隐藏 ,伪装成类似springmvc的Controller一样。
  • 不用再自己拼接url,拼接参数等。都交给feign去做

2、优点

  • 帮助我们便捷优雅的调用HTTP API

步骤

springcloud使feign支持SpringMVC注解,并整合了Ribbon和Eureka

  1. 在引导类中增加注解
    feign远程调用&基于Http的RestTemplate
  2. 接口
    feign远程调用&基于Http的RestTemplate

步骤总结:

  1. 引入openFeign启动器
  2. feign.hystrix.enable=true 开启feign的熔断功能√
  3. 在引导类上,加入@EnableFeignClients注解
  4. 创建一个接口,在接口添加@FeignClient(value=“服务id”,fallback=实现类.class)
  5. 在接口中定义方法,这些方法和controller类似
  6. 创建一个熔断类,实现feign接口,实现对应的方法(熔断方法)