大致记录一下使用过程中学到的东西吧,以免下次见到还是会行同路人!哈哈哈哈哈哈哈
1.概述:
feign的主要功能是实现服务之间的互相调用,这也是阿里比较推荐的一种调用方式,使用起来也非常简单,只需要通过注解即可,是一种可插拔的调用方式,可通过注解进行开启或关闭。Feign 默认集成了 Ribbon,Nacos 也很好的兼容了 Feign,默认实现了负载均衡的效果(关于最后一句话,菜菜的我表示还不是很理解,还需要多读书啊)。
2.具体使用
(1)引包
无论使用什么别人吐出来的框架,都需要把包或依赖引进来
org.springframework.cloud
spring-cloud-starter-openfeign
2.0.0.RELEASE
(2)修改启动类
在启动类上增加 @EnableFeignClients 注解开启 Feign 功能。
(3)创建Feign接口
个人理解就是给远程调用一个固定的类,给一个调用的位置,可以创建一个单独的包来存储所以逇关于feign的接口,直接上图:hystrix是熔断类,以后记录,wrap是实际调用的类,以后记录,哈哈哈哈哈哈哈哈
(4)常见好接口类以后偶,具体在接口类里写些什么呢实际上是和在本地调用接口一样的,需要注意的是,一定要加上标号2,其中URL是被调用服务的地址,标号1是写上熔断类,意思就是在服务调用过程中出现了一些错误就会走熔断类来处理一些异常或错误,而不是直接导致系统瘫痪。
标号3就很简单了,如果不懂那就百度吧,需要注意的是参数名字必须和被调用服务保持一致,比如说服务1调用服务2,你这个参数必须和服务2中的此方法的参数名保持一致,否则服务2无法接口参数,会报错,如果是get放肆调用,参数是@RequestParam用这个标注,而且 method = RequestMethod.GE,如果是post方式,则参数是这样标注@RequestBody JSONObject jsonParam,而且方法上的调用方式改为post,具体使用哪种调用方式是由被调用服务也就是服务2决定的。
(5)熔断类需要注意的是圈起来的地方,注解和实现接口,其中IUserFeign是上边自己写的那个远程调用的类,Result是自己封装的类,不一定要有,这个实现只是对错误的处理,就算只有一个输出语句都可以。
(6)wrap相关
这两个类其实就是普通的逻辑层,只不过在这个逻辑层里不去调用数据层,而是调用feign,接口类的方法和feign里保持一致,只是没有了相关注解。
(7)补充记录
在其他类中调用这些接口的时候要 调用wrap中的类,从而间接调用feign实现远程调用,避免一些错误(具体是为什么,我是真的我忘了,还需要多读书啊)
@Autowired
private IUserServiceWrap iuserWrap;
这样在调用的地方引入
好了,就这些吧,我的脑容量有限,哈哈,我要去读书了!!!