赞
踩
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。
就用一个例子来简单使用OpenFeign进行服务间的调用,通过实例来学习关于Feign组件的功能。
使用OpenFeign组件需要引入客户端依赖
<!--OpenFeign-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>
通过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
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。