美文网首页
Spring Cloud Feign - 声明式服务调用是什么

Spring Cloud Feign - 声明式服务调用是什么

作者: zbsong | 来源:发表于2020-03-25 14:20 被阅读0次

Spring Cloud Feign 整合了Sping Cloud Hystrix和Spring Cloud Ribbon,还提供了一种声明式的Web服务客户端定义方式。我们只需要创建一个接口并用注解的方式来配置它,既可完成对服务提供的接口绑定。

  • 快速入门

1.修改服务提供者,添加一个FeignController,用来实现feign调用方法

@RestController
@RequestMapping(value = "/feign")
public class FeignController {

    @RequestMapping(value = "/test")
    public String testFeign() {
        return "Hello World";
    }

}

2.新建一个Spring Boot工程,命名为fegin-consumer(随意)
3.编辑pom.xml文件,主要依赖内容如下:

<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
  <groupId>org.springframework.cloud</groupId>
  <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
<dependency>
  <groupId>org.springframework.cloud</groupId>
  <artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>

4.修改application.yml文件

server:
  port: 9000
eureka:
  client:
    service-url:
      defaultZone: http://peer1:1111/eureka/
spring:
  application:
    name: feign-consumer

5.修改应用主类

//开启 spring cloud feign功能
@EnableFeignClients
@EnableDiscoveryClient
@SpringBootApplication
public class FeginApplication {

    public static void main(String[] args) {
        SpringApplication.run(FeginApplication.class, args);
    }

}

6.添加FeignService

//使用@FeignClient注解指定服务名来绑定服务
@FeignClient("HELLO-CLIENT")
public interface FeignService {

    @RequestMapping(value = "/feign/test")
    String hello();

}
@FeignClient注解参数绑定的是服务名,绑定时,服务名不区分大小写 image.png

7.添加FeignController

@RestController
@RequestMapping(value = "/feign")
public class FeignController {

    @Autowired
    FeignService feignService;

    @GetMapping(value = "/test")
    public String feignConsumer() {
        System.out.println("服务提供方返回数据为:" + feignService.hello());
        return feignService.hello();
    }
}
查看消费者控制台打印日志,内容如下: image.png

从结果中可以看到远程调用接口正常,实现了和使用Ribbon实现时一样的效果。

通过Feign我们只需要定义服务绑定接口,以声明式的方法,优雅而简单地实现服务调用。

相关文章

网友评论

      本文标题:Spring Cloud Feign - 声明式服务调用是什么

      本文链接:https://www.haomeiwen.com/subject/avwtuhtx.html