当前位置:   article > 正文

【微服务】- 服务调用 - OpenFeign_openfeign 来回调

openfeign 来回调

介绍

OpenFeign 全称 Spring Cloud OpenFeign,它是 Spring 官方推出的一种声明式服务调用与负载均衡组件,它的出现就是为了替代进入停更维护状态的 Feign。

Spring Cloud openfeign对Feign进行了增强,使其支持Spring MVC注解,另外还整合了

Ribbon和Nacos,从而使得Feign的使用更加方便。

Feign使用http远程调用方法就好像调用本地的方法,感觉不到是远程方法。他的使用就和直接写控制类那样,暴露接口提供调用,我们只需要编写调用接口+@FeignClient注解,在使用这个api的时候,只需要定义好方法,到时候调用这个方法就可以了。这种服务之间的调用使用起来是非常的方便,体验也比较好。

如何实现接口调用?

在平时开发的springboot项目中,像这种rest服务是如何被调用的呢?通常下是使用Httpclient、Okhttp、HttpURLConnection、RestTemplate,其中RestTemplate是最常见的。之前在 nacos配置中心 使用的是RestTemplate。

SpringCloud整合OpenFeign

就用一个例子来简单使用OpenFeign进行服务间的调用,通过实例来学习关于Feign组件的功能。

引入依赖

使用OpenFeign组件需要引入客户端依赖

<!--OpenFeign-->
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>
  • 1
  • 2
  • 3
  • 4
  • 5

编写调用接口

通过OpenFeign远程调用服务的时候,比RestTemplate更加方便,就跟编写controller接口是差不多的。

需要写上@FeignClient注解,里面配置微服务名字和rest的@RequestMapping(“/api/store”),或者可以在声明调用pai的时候写上完整的路径。

简单的对应如下图所示

代码如下:

package com.lyd.demo.feign;
import com.lyd.demo.feign.config.FeignOkhttpConfig;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import java.util.Map;
/**
 * @author: lyd
 * @description: 远程调用 service-store 服务
 * @Date: 2022/9/24
 * 介绍:
 *      name / value : 要调用的微服务名
 *      path:控制类上面的路径 --- @RequestMapping("/api/store")
 */
@FeignClient(name = "service-store", path = "/api/store")
public interface StoreFeignService {
    // 声明要调用的res
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop】
推荐阅读
相关标签
  

闽ICP备14008679号