纯净、安全、绿色的下载网站

首页|软件分类|下载排行|最新软件|IT学院

当前位置:首页IT学院IT技术

Spring Cloud-Feign服务调用 Spring Cloud-Feign服务调用的问题及处理方法

人形bug制造机9527   2021-10-13 我要评论
想了解Spring Cloud-Feign服务调用的问题及处理方法的相关内容吗,人形bug制造机9527在本文为您仔细讲解Spring Cloud-Feign服务调用的相关知识和一些Code实例,欢迎阅读和指正,我们先划重点:Spring,Cloud-Feign服务调用,Spring,Cloud-Feign服务,下面大家一起来学习吧。

概述:

• Feign 是一个声明式的 REST 客户端,它用了基于接口的注解方式,很方便实现客户端配置。
• Feign 最初由 Netflix 公司提供,但不支持SpringMVC注解,后由 SpringCloud 对其封装,支持了SpringMVC注
解,让使用者更易于接受

首先在调用者的pom中加入如下坐标

<!--feign-->
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>

然后在启动类上添加注解
@EnableFeignClients以启用Feign
最后创建一个接口,方法参数映射全部按照我们要调用的那个controller写一个
value的值是应用名称

/**
 *
 * feign声明式接口。发起远程调用的。
 *
 String url = "http://eureka-provider/provider/getUser/"+id;
 User user = restTemplate.getForObject(url, User.class);
 *
 * 1. 定义接口
 * 2. 接口上添加注解 @FeignClient,设置value属性为 服务提供者的 应用名称
 * 3. 编写调用接口,接口的声明规则 和 提供方接口保持一致。
 * 4. 注入该接口对象,调用接口方法完成远程调用
 */
@FeignClient(value = "eureka-provider")
@RequestMapping("/provider")
public interface FeignProviderUserController {

    @GetMapping("/getUser/{id}")
    public ResponseEntity<User> getUser(@PathVariable("id")String id);
}

然后我们将这个接口注入到我们要使用的地方,就可以直接调用那个方法了

/**
 * Feign形式的服务调用
 * @param id
 * @return
 */
@GetMapping("/FeignClientGetUser/{id}")
public ResponseEntity<User> FeignClientGetUser(@PathVariable("id") String id){
    System.out.println("进入");
    ResponseEntity<User> user = feignConsumerUserClient.getUser(id);
    return user;
}

现在存在一个问题,就是按照应用名称调用的时候。取到的对象name是正确的,但是url却是http://+name,并不是我们想要的http://+host+port+uri,
正在解决…
结果:{好吧需要ribbon}

在这里插入图片描述

Feign超时配置

Feign 底层依赖于 Ribbon 实现负载均衡和远程调用。
• Ribbon默认1秒超时。
• 超时配置:
在调用者的配置文件中加入

# 设置Ribbon的超时时间
ribbon:
  ConnectTimeout: 1000 # 连接超时时间 默认1s  默认单位毫秒
  ReadTimeout: 3000 # 逻辑处理的超时时间 默认1s 默认单位毫秒

Feign日志记录

logging:
  level: debug #配置日志级别

如果报错Failed to bind properties under 'logging.level',是因为springboot2.0.0以后的版本只支持如下这种配置,需要指定名称

logging:
  level:
    root: info #配置日志级别

相关文章

猜您喜欢

  • springboot与dubbo版本匹配 springboot与dubbo的版本匹配问题

    想了解springboot与dubbo的版本匹配问题的相关内容吗,EmineWang在本文为您仔细讲解springboot与dubbo版本匹配的相关知识和一些Code实例,欢迎阅读和指正,我们先划重点:spring,dubbo,dubbo版本匹配,springboot版本匹配,下面大家一起来学习吧。..
  • OkHttp超时时间 图文详解OkHttp的超时时间

    想了解图文详解OkHttp的超时时间的相关内容吗,今天i你好吗在本文为您仔细讲解OkHttp超时时间的相关知识和一些Code实例,欢迎阅读和指正,我们先划重点:okhttp超时时间,okhttp教程,下面大家一起来学习吧。..

网友评论

Copyright 2020 www.freemmogames.net 【漫漫下载站】 版权所有 软件发布

声明:所有软件和文章来自软件开发商或者作者 如有异议 请与本站联系 点此查看联系方式