Feign客户端实现RPC 调用

Posted Chris,Cai

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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 客户端来访问了。。。

以上是关于Feign客户端实现RPC 调用的主要内容,如果未能解决你的问题,请参考以下文章

Feign实现RPC调用

模拟RPC调用(Feign)

Spring Cloud Feign - 内部实现细节

Feign远程调用原理

微服务之Feign分布式RPC

微服务之Feign分布式RPC