一、简介
1.SpringCloud支持2种调用:restTemplate和Feign客户端
2.Feigm客户端工具,实际开发用的最多
3.Feign是一个声明式的Http客户端调用工具,采用接口+注解方式实现,易读性比较强
二、代码操作
订单服务调用会员服务的例子
1.引入依赖
2.在订单服务建立一个MemberApiFeign接口;@FreignClient(name=参数(参数是会员服务的别名))
3.建立订单服务控制层
4.@EnableFeignClient在main类标识:开启Feign权限
5.把会员服务的访问方法赋值:访问方法,底层自动会转化成http协议,实现RPC远程调用
6.为什么以下二步可以访问:使用注解,通过反射机制,通过服务名称,去注册中心获取实际地址;再通过接口调用方法,获取方法的url地址,再底层转化成rpc远程调用
三、重构Feign接口信息
目前Fegin客户端调用缺点:订单调用会员服务,还要在订单服务定义会员服务的调用方法
1.重构目录结构:
parent---存放共同依赖信息
---api---只有接口,没有实现
-------api-member
-------api-order
----member.impl--它是API接口实现
----order.impl--它是API接口实现
2.具体细节
1.在订单的实现类中,调用编写的会员服务的memberFeigin,从而实现RPC
2.在订单的实现类中,编写memberFeign继承会员服务的接口,这样才能避免定义重复的方法;而且@FeignClient不能放在会员服务接口中,是因为服务降级用的着,降级参数在@FeignClient参数中,而且降级又要定义在订单客户端中
3.会员服务的接口
4.会员服务的实现类,以上三步,这才能通过Feigin访问到该实现类