栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

使用Feign完成服务调用

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

使用Feign完成服务调用

添加Maven依赖

    org.springframework.cloud
    spring-cloud-starter-openfeign



    org.springframework.cloud
    spring-cloud-starter-loadbalancer

配置Feign
# 配置Feign
feign:
  client:
    config:
      # 服务提供者的服务名
      nacos-school-server:
        # 设置日志级别
        loggerLevel: FULL

        # 设置契约配置:支持Feign原生注解
        # contract: feign.Contract.Default

        # 设置请求超时时间,超时会抛出异常,单位毫秒,默认值2s
        # readTimeout: 5000

        # 设置连接超时时间,超时会抛出异常,单位毫秒,默认值5s
        # connectTimeout: 10000

        # 配置自定义请求拦截器
        requestInterceptors:
          - com.tigerkin.feign.CustomRequestIntercoptor
添加Feign接口
@Component
@FeignClient(value = "nacos-school-server", path = "/school", fallback = SchoolServiceFallback.class)
public interface SchoolServiceFeign {

    // Feign原生注解:@RequestLine("GET /get") 请求映射注解,不指定GET POST等请求方法就会抛出异常
    // Feign原生注解:@Param() 参数注解
    @GetMapping("/get")
    String get();
}
添加Feign回调

Feign回调需要整合Ribbon或者Sentinel熔断降级,否则就不会生效。由于Ribbon已经不维护,这里就整合Sentinel。

添加依赖


    com.alibaba.cloud
    spring-cloud-starter-alibaba-sentinel

添加配置

feign:
  # 集成Sentinel后,需要设置为true
  sentinel:
    enabled: true

整合后回调就可以生效了

@Component
public class SchoolServiceFallback implements SchoolServiceFeign {

    @Override
    public String get() {
        return "获取学校请求调用失败";
    }
}
服务调用

服务调用就比较简单了,就跟调用方法一样。依赖注入Feign接口,然后就只调用方法即可。

@RestController
@RequestMapping("/user")
public class UserController {

    @Autowired
    SchoolServiceFeign schoolServiceFeign;

    @GetMapping("/getSchool")
    public String getSchool() {
        return String.format("[Feign] %s", schoolServiceFeign.get());
    }
}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/763386.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号