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 客户端来访问了。。。

posted @ 2019-08-20 21:05  Chris,Cai  阅读(3263)  评论(0编辑  收藏  举报