随笔-生活工作点滴

SpringCloud 远程调用Feign

2019-07-05  本文已影响0人  黄靠谱

参考

http://www.ityouknow.com/springcloud/2017/05/12/eureka-provider-constomer.html

概述

Feign是一个http请求调用的轻量级框架,可以以Java接口注解的方式调用Http请求,而不用像Java中通过封装HTTP请求报文的方式直接调用。
Feign通过处理注解,将请求模板化,当实际调用的时候,传入参数,根据参数再应用到请求上,进而转化成真正的请求,这种请求相对而言比较直观。

Feign = RestTemplate + Spring全家桶(Eureka + Ribbon + 熔断 + Zipkin)

所以对于服务提供者而言是无感知的,依然正常的对外开放Http接口。

功能点

  1. 基础的远程调用
  2. 负载均衡策略
  3. 熔断策略

服务消费端

  1. @EnableFeignClients+ @FeignClient ,consumer启动类的注解,表示该消费者会发起远程调用
@SpringBootApplication
@EnableDiscoveryClient
@EnableFeignClients
public class ConsumerApplication {
    public static void main(String[] args) {
        SpringApplication.run(ConsumerApplication.class, args);
    }
}

@RestController
public class ConsumerController {
    @Autowired
    HelloRemote HelloRemote;
    @RequestMapping("/hello/{name}")
    public String index(@PathVariable("name") String name) {
        return HelloRemote.hello(name);
    }
}

@FeignClient(name= "spring-cloud-producer")
public interface HelloRemote {
    @RequestMapping(value = "/hello")
    public String hello(@RequestParam(value = "name") String name);
}

依赖jar包,版本号 和springcloud的不一样

        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-feign</artifactId>
        </dependency>
上一篇 下一篇

猜你喜欢

热点阅读