springboot远程调用常见问题feign.RetryableException: Connection timed out

这篇具有很好参考价值的文章主要介绍了springboot远程调用常见问题feign.RetryableException: Connection timed out。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1,远程调用基本介绍

1.1,@FeignClient标签的常用属性如下:

    name:指定FeignClient的名称,如果项目使用了Ribbon,name属性会作为微服务的名称,用于服务发现
    url: url一般用于调试,可以手动指定@FeignClient调用的地址
    path: 定义当前FeignClient的统一前缀,当我们项目中配置了server.context-path,server.servlet-path时使用

1.2,两个微服务模块之间,调用者和被调用者

1.2.1,前提:两个服务都已经注册到同一个注册中心;

1.2.2,网络结构

场景1:两个服务部署在同一台服务器,或者同一个网段;

场景2:两个服务在不同的服务器【容易出问题的模式】

1.2.3,被调用者的注册地址,是可以被调用者的运行环境直接访问的;

调用者代码

@FeignClient(name="FEEINTE",path="/feeinte")
public interface FeeInterfaceService {
   @RequestMapping(value="selectAllCi")
   List<Ci> selectAllCi();

被调用者配置文件

feeinte服务的配置文件

server.port=1903
spring.application.name=FEEINTE
#server端的hostname
eureka.instance.hostname=223.70.130.11
#注册到server的实例id,具备唯一性
eureka.instance.instance-id=${eureka.instance.hostname}:${server.port}/${spring.application.name}
#注册服务时是否使用IP注册,默认false
eureka.instance.prefer-ip-address=true
#server端的ip地址
eureka.instance.ip-address=223.70.130.11

1.2.4,后台运行过程:调用者请求FEEINTE,到eureka注册中心根据FEEINTE获得223.70.130.11和1903,拼接成最终访问地址223.70.130.11:1903/feeinte/selectAllCi

其中feeinte和tomcat/webapps文件夹名称一致;

2,常见异常信息和处理方案

2.1,找不到FEEINTE;除了检查被调用方名称,正常启动外,还要留意服务注册到注册中心需要一定的时间;

2.2,连接拒绝

feign.RetryableException: Connection refused: connect executing GET http://FEEINTE/feeinte/selectAllCi

at feign.FeignException.errorExecuting(FeignException.java:67)

at feign.SynchronousMethodHandler.executeAndDecode(SynchronousMethodHandler.java:104)

at feign.SynchronousMethodHandler.invoke(SynchronousMethodHandler.java:76)

at feign.ReflectiveFeign$FeignInvocationHandler.invoke(ReflectiveFeign.java:103)

at com.sun.proxy.$Proxy92.selectAllCity(Unknown Source)

2.3,连接超时

feign.RetryableException: Connection timed out: connect executing GET http://FEEINTE/feeinte/selectAllCi

at feign.FeignException.errorExecuting(FeignException.java:67)

at feign.SynchronousMethodHandler.executeAndDecode(SynchronousMethodHandler.java:104)

at feign.SynchronousMethodHandler.invoke(SynchronousMethodHandler.java:76)

3,分析过程:

3.1,当调用失败的时候,把path直接替换为url;确保被调用端服务是正常的;

替换前

@FeignClient(name="FEEINTE",path="/feeinte")

替换后

@FeignClient(name="FEEINTE",url="http://223.70.160.141:1903/feeinte/")

3.2,查看具体报错信息中能体现实际的后台地址

2023-02-24 13:44:36.433  INFO 32373 --- [-nio-443-exec-9] c.n.l.DynamicServerListLoadBalancer      : DynamicServerListLoadBalancer for client FEEINTERFACE initialized: DynamicServerListLoadBalancer:{NFLoadBalancer:name=FEEINTE,current list of Servers=[223.70.130.141:1903],Load balancer stats=Zone stats: {defaultzone=[Zone:defaultzone;      Instance count:1;       Active connections count: 0;    Circuit breaker tripped count: 0;       Active connections per server: 0.0;]
},Server stats: [[Server:223.70.130.141:1903;  Zone:defaultZone;       Total Requests:0;       Successive connection failure:0;        Total blackout seconds:0;       Last connection made:Thu Jan 01 08:00:00 CST 1970;      First connection made: Thu Jan 01 08:00:00 CST 1970;        Active Connections:0;   total failure count in last (1000) msecs:0;     average resp time:0.0;  90 percentile resp time:0.0;    95 percentile resp time:0.0;    min resp time:0.0;      max resp time:0.0;  stddev resp time:0.0]
]}ServerList:org.springframework.cloud.netflix.ribbon.eureka.DomainExtractingServerList@32dc7614
feign.RetryableException: Connection refused (Connection refused) executing GET http://FEEINTE/feeinte/selectAllCi

3.2.1,根据实际请求地址,排查客户端配置文件;文章来源地址https://www.toymoban.com/news/detail-785073.html

到了这里,关于springboot远程调用常见问题feign.RetryableException: Connection timed out的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 常见问题03:SpringBoot项目启动初始化数据(执行sql文件)

    使用外部资源中定义的 SQL 脚本填充、初始化或清理数据库。 调用addScript(org.springframework.core.io.Resource)以添加单个 SQL 脚本位置。 调用addScripts(org.springframework.core.io.Resource…)以添加多个 SQL 脚本位置。 请参阅此类中的 setter 方法以获取更多配置选项。 调用populate(java.sql.Connect

    2024年02月13日
    浏览(58)
  • PyCharm环境下Git与Gitee联动:本地与远程仓库操作实战及常见问题解决方案

    写在前面 :本博客仅作记录学习之用,部分图片来自网络,如需引用请注明出处,同时如有侵犯您的权益,请联系删除! 在软件开发中,版本控制是一个不可或缺的工具。随着项目的增长和团队的扩大,管理源代码的变更、协作和跟踪变得愈发重要。Git正是为了满足这些需

    2024年04月25日
    浏览(76)
  • JDK9~17+Springboot3 @Resource常见问题和解决方案

    因为JDK版本升级的改动,在Jdk9~17环境下,搭建Springboot项目,会出现原有@Resource(javax.annotation.Resource)不存在的问题,导致项目从Jdk8迁移到高版本时遇到的问题 原因 你可能会问,为什么javax.annotation.Resource注解不存在呢?  从Jdk9开始,JavaEE从Jdk中分离,jdk就移除掉了javax.a

    2024年02月04日
    浏览(63)
  • GPU版本pytorch的安装,配套环境python、Cuda、Anaconda安装和版本选择,及常见问题调用gpu返回false

    前言 :第一次装这个我也很懵,就想记录一下交流经验,这个安装最麻烦的是需要各个 版本 都需要 对应 。我也看了很多教程网上基本上安装都是cpu版本,就官网链接安装下来也是cpu版本,然后就不能调用显卡。 本教程使用python3.9、pytorch1.8.0、Cuda11.2版本、Cudnn8.8.1,这个

    2024年02月03日
    浏览(53)
  • SpringCloud Alibaba(一)微服务简介+Nacos的安装部署与使用+Nacos集成springboot实现服务注册+Feign实现服务之间的远程调用+负载均衡+领域划分

    目录 一.认识微服务 1.0.学习目标 1.1.单体架构 单体架构的优缺点如下: 1.2.分布式架构 分布式架构的优缺点: 1.3.微服务 微服务的架构特征: 1.4.SpringCloud 1.5Nacos注册中心 1.6.总结 二、Nacos基本使用安装部署+服务注册 (一)linux安装包方式单节点安装部署 1. jdk安装配置 2. na

    2024年02月09日
    浏览(47)
  • 搭建feign远程调用环境

    在我的SpringCloud专栏中已经介绍过SpringCloud五大组件的环境搭建,各个环境的搭建都有详细的步骤讲解,之前我们说过各个服务搭建都是不依赖于之前的环境的,本节介绍的Feign服务间远程调用也是,本次也是侧重于环境搭建,Feign的作用我们之前已经介绍过了。可以查看:0

    2024年01月17日
    浏览(40)
  • 微服务远程调用Feign

    目录 RPC概述 什么是Feign? RibbonFeign对比 Feign的设计架构 Spring Cloud Alibaba快速整合Feign Spring Cloud Feign扩展 日志配置 契约配置 通过拦截器实现参数传递 自定义拦截器实现认证逻辑 超时时间配置 微服务之间如何方便优雅的实现服务间的远程调用? RPC 全称是 Remote Procedure Call ,

    2024年03月14日
    浏览(42)
  • 【微服务】Feign远程调用

           📝个人主页: 五敷有你         🔥系列专栏: 微服务 ⛺️稳中求进,晒太阳 先来看我们以前利用RestTemplate发起远程调用的代码: 存在下面的问题: 代码可读性差,编程体验不统一 参数复杂URL难以维护 Feign是一个声明式的http客户端,官方地址:GitHub - OpenF

    2024年03月28日
    浏览(44)
  • [RPC]:Feign远程调用

    摘要:RestTemplate;Feign;远程调用; Feign是一个简化HTTP客户端编写的框架,通过声明式方式将远程服务调用封装成简单接口调用。 1.2.1 使用RestTemplate发送远程调用代码 要求:系统调用者在查询订单的同时,根据订单中包含的userId查询出用户信息,一起返回。 1.2.1.1 项目示例

    2024年02月10日
    浏览(45)
  • SpringCloud --- Feign远程调用

    先来看我们以前利用RestTemplate发起远程调用的代码: 存在下面的问题: 代码可读性差,编程体验不统一 参数复杂URL难以维护 Feign是一个声明式的http客户端,官方地址:GitHub - OpenFeign/feign: Feign makes writing java http clients easier 其作用就是帮助我们优雅的实现http请求的发送,解决

    2024年02月05日
    浏览(39)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包