广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Springboot RestTemplate设置超时时间的简单方法
  • 871
分享到

Springboot RestTemplate设置超时时间的简单方法

2024-04-02 19:04:59 871人浏览 八月长安

Python 官方文档:入门教程 => 点击学习

摘要

目录排查:Java Config配置配置文件指定RestTemplate 设置超时时间注意点总结RestTemplate未设置超时时间,导致RabbitMQ队列大量堆积,消费者假死,

RestTemplate未设置超时时间,导致RabbitMQ队列大量堆积,消费者假死,不进行消费,类似线程堵塞。

排查:

日志排查问题,在从进入消费者到结束期间,会调用业务服务,然而通过开始时间至结束时间,花费的时间竟然高达100多秒,查看业务服务未发现异常。出现这种问题的原因也有可能在消费期间网络波动导致Http连接出现问题,一直处于等待状态。由此判断可能是HTTP超时时间未设置导致的问题。

本文生产环境SpringBoot版本 2.1.5.RELEASE,采用的是Java config配置

Java Config配置

@Configuration
public class RestTemplateConfig {
    @Bean
    public RestTemplate getRestTemplate() {
        //配置HTTP超时时间
        HttpComponentsClientHttpRequestFactory httpRequestFactory = new HttpComponentsClientHttpRequestFactory();
        httpRequestFactory.setConnectionRequestTimeout(6000);
        httpRequestFactory.setConnectTimeout(6000);
        httpRequestFactory.setReadTimeout(6000);
        return new RestTemplate(httpRequestFactory);
    }
}

配置文件指定

custom.rest.connection.connection-request-timeout=3000
custom.rest.connection.connect-timeout=3000
custom.rest.connection.read-timeout=3000
@Configuration
public class AppConfig{
    @Bean
    @ConfigurationProperties(prefix = "custom.rest.connection")
    public HttpComponentsClientHttpRequestFactory customHttpRequestFactory() {
        return new HttpComponentsClientHttpRequestFactory();
    }
​​​​​​​    @Bean
    public RestTemplate customRestTemplate(){
        return new RestTemplate(customHttpRequestFactory());
    }
}

重新部署后消费者迅速开始消费,堆积的消息已经消费完。

RestTemplate 设置超时时间注意点

1、保证系统中只有一个RestTemplate的配置;不然可能与你的预期不一致。

2、永远不要太相信自己写的代码;多打印日志才能真正知道调用时间;

long s = System.currentTimeMillis();
        try {
            responseEntity = restTemplate.exchange();
        } catch (Exception e) {
            long costTime = System.currentTimeMillis()-s;
            log.error("调用**服务异常,花费时间:{},错误:{}",costTime, e.getMessage(), e);
        }

总结

到此这篇关于springboot RestTemplate设置超时时间的文章就介绍到这了,更多相关Springboot RestTemplate设置超时时间内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: Springboot RestTemplate设置超时时间的简单方法

本文链接: https://www.lsjlt.com/news/163100.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Springboot RestTemplate设置超时时间的简单方法
    目录排查:Java Config配置配置文件指定RestTemplate 设置超时时间注意点总结RestTemplate未设置超时时间,导致RabbitMQ队列大量堆积,消费者假死,...
    99+
    2022-11-13
  • Resttemplate中设置超时时长方式
    目录Resttemplate 设置超时时长RestTemplate 设置超时时间注意点Resttemplate 设置超时时长 为了满足调用需求,需要在使用Resttemplate发送...
    99+
    2022-11-12
  • SpringBoot设置接口超时时间
    SpringBoot设置接口访问超时时间有两种方式一、在配置文件application.properties中加了spring.mvc.async.request-timeout=20000,意思是设置超时时间为20000ms即20s,二、...
    99+
    2015-11-02
    java教程 SpringBoot
  • RestTemplate如何设置超时时间及返回状态码
    今天小编给大家分享一下RestTemplate如何设置超时时间及返回状态码的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。默认...
    99+
    2023-07-02
  • mybatis设置sql执行时间超时时间的方法
    存在这样的场景,当一些比较耗时的查询时,如果不中断,则会导致数据库堵塞,进而会拖垮整个数据库服务的正常运行。 1.如果你使用的是HikariCP连接池的话,可以在配置文件设置conn...
    99+
    2022-11-13
  • RestTemplate设置超时时间及返回状态码非200处理
    目录1.调试postForEntity请求2.设置超时时间默认情况下使用RestTemplate如果返回结果的状态码是200的话就正常处理,否则都会抛出异常; 1.调试postFor...
    99+
    2022-11-13
  • SpringBoot设置接口超时的方法小结
    1、配置文件  application.properties中加了,意思是设置超时时间为20000ms即20s, spring.mvc.async.request-timeout...
    99+
    2022-11-12
  • Springboot2 session设置超时时间无效的解决方法
    本篇内容介绍了“Springboot2 session设置超时时间无效的解决方法”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!问题:今天项目...
    99+
    2023-06-20
  • Oracle空闲超时时间设置方式
    目录oracle空闲超时时间设置Oracle长连接超时设置方法一方法二总结Oracle空闲超时时间设置 远程连接oracle 会出现超时连接断开的问题,所以需要修改oracle配置。 修改超时时间10分钟 ALTER P...
    99+
    2023-04-12
    Oracle空闲超时 Oracle时间设置 Oracle超时时间设置
  • Windows系统设置开机菜单选择超时等待时间的方法
    在安 1、按【Win + R】,弹出【运行】对话框 2、在对话框中,输入【msconfig】后按回车键,如下图所示: 3、单击【引导】,如下图所示: 4、在【超时】中输入超时等待时间,如下图所示: 5、更改系统设...
    99+
    2023-06-10
    Windows开机 等待时间 时间 等待 菜单 系统 Windows
  • python 设置方法超时
    #!/usr/bin/python #-*-coding:utf-8-*- import os,time,signal,platform,subprocess class TimeoutError(Exception): pas...
    99+
    2023-01-31
    方法 python
  • python脚本设置超时机制系统时间的方法
    本文为大家介绍了python脚本设置系统时间的方法,一共有两种,其一是调用socket直接发送udp包到国家授时中心,其二是调用ntplib包。我在本地电脑ping 国家授时中心地址cn.pool.ntp....
    99+
    2022-06-04
    脚本 机制 时间
  • localStorage设置有效期和过期时间的简单方法
    目录前言实现思路实现代码总结前言 总所周知localStorage默认是不会过期的,也没有可设置过期的api,如果要实现过期清除就需要自己实现一个api 实现思路 在Storage原...
    99+
    2022-11-13
  • java中Socket设置超时时间的两种方式
    目录Socket设置超时时间的两种方式方法1方法2整理一下二者的区别设置socket超时时间的那些坑Socket设置超时时间的两种方式 方法1 调用Socket的connct 方法打...
    99+
    2022-11-13
    java Socket Socket设置超时时间 java Socket超时设置
  • SpringBoot 关于Feign的超时时间配置操作
    目录Feign的超时时间配置feign 时间设置Feign调用问题 \ 超时1、项目结构2、在其他微服务中 引入clientXX.jar3、feign调用超时Feign的超时时间配置...
    99+
    2022-11-12
  • mysql怎么设置session的超时时间
    本篇内容介绍了“mysql怎么设置session的超时时间”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成! ...
    99+
    2022-10-18
  • 设置接口调用超时时间的N种办法
    设置接口调用超时时间的N种办法 最近遇到调用ldap包接口需要设置接口超时时间,于是略微总结了一下java接口调用设置超时时间的方法: 1.在配置文件application.properties...
    99+
    2023-09-03
    java spring 开发语言
  • html设置时间的方法
    这篇文章给大家分享的是有关html设置时间的方法的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。html设置时间的方法:首先创建一个div;然后给该div添加一个class属性;最后通过“function real...
    99+
    2023-06-14
  • golang在GRPC中设置client的超时时间
    超时 建立连接 主要就2函数Dail和DialContext。 // Dial creates a client connection to the given target. ...
    99+
    2022-11-12
  • SpringBoot Java后端实现okhttp3超时设置的方法实例
    目录前言 导入 okhttp3方法简介 两种版本超时设置用法 总结前言 okhttp是一个处理网络请求的开源项目,是安卓端最火热的轻量级框架,由移动支付Square公司开发。OkH...
    99+
    2022-11-12
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作