Feign客户端实现RPC 调用
1,springcloud 中支持http调用的两种方式,RestTemplate,Feign客户端
2,Feign 客户端是一个声明式(注解方式)http 远程调用工具
3,实现方式如下:
第一步:
例如member 服务需要调用order 服务,采用feign 客户端调用的方式
member 服务中添加依赖:
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-openfeign</artifactId> </dependency>
在member 服务中,定义feign 接口:
@FeignClient(name = "app-aiyuesheng-order") :代表这个接口是调用 app-aiyuesheng-order(eureka 中注册服务的别名) 这个服务中的getOrder的接口
@FeignClient(name = "app-aiyuesheng-order") public interface OrderFeign { @RequestMapping("/getOrder") public String getOrder(); }
第二步:controller 中直接引入即可
@RestController public class IndexMemberController { @Autowired private OrderFeign orderFeign; @RequestMapping("/getOrder") public String getOrder() { String res = orderFeign.getOrder(); return res; } }
第三步:启动类中加入@EnableFeignClients
@SpringBootApplication @EnableEurekaClient @EnableFeignClients public class App { public static void main(String[] args) { SpringApplication.run(App.class, args); } }
order 服务中,要有这个getOrder的具体实现:
@RestController public class IndexOrderController { @RequestMapping("/getOrder") public String getOrder(){ return "获得订单成功"; } }
依次将注册中心,member 服务,order 服务启动就可以通过feign 客户端来访问了。。。
Aimer,c'est partager