基于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
- 在引导类中增加注解
- 接口
步骤总结:
- 引入openFeign启动器
- feign.hystrix.enable=true 开启feign的熔断功能√
- 在引导类上,加入@EnableFeignClients注解
- 创建一个接口,在接口添加@FeignClient(value=“服务id”,fallback=实现类.class)
- 在接口中定义方法,这些方法和controller类似
- 创建一个熔断类,实现feign接口,实现对应的方法(熔断方法)