0.学习目标
1.学会配置Hystrix熔断
2.学会使用Feign进行远程调用
3.能独立搭建Zuul网关
4.能编写Zuul的拦截器
2.Feign
在前面的学习中,我们使用了Ribbon的负载均衡功能,大大简化了远程调用时的代码:
String baseUrl = "http://user-service/user/";
User user = this.restTemplate.getForObject(baseUrl + id, User.class)
如果就学到这里,你可能以后需要编写类似的大量重复代码,格式基本相同,无非参数不一样。有没有更优雅的方式,来对这些代码再次优化呢?
(这里时通过设置访问路径来访问服务,而这些服务名,以及服务里的方法名都是写死了的,在企业中,每个服务往往是分人管理,那万一更改了又要去问?或者查文档等等,这里的依赖就很强,而且每次写方法都要调用访问路径也很麻烦(就像访问数据库,如果每次都要写访问路径岂不是累死,所以一般就配置一次在配置文件中),所以这两行代码我们也可以通过Feign实现简化)
这就是我们接下来要学的Feign的功能了。
2.1.简介
有道词典的英文解释:
为什么叫伪装?
Feign可以把Rest的请求进行隐藏,伪装成类似SpringMVC的Controller一样。你不用再自己拼接url,拼接参数等等操作,一切都交给Feign去做。
(解释:原方法要通过Feign去远程调用服务方法,需要告知它四个属性:1请求方式、2方法参数、3方法路径、4返回类型,就很麻烦,而这四个属性在哪