restTemplate超时处理的策略方案

目录

htmledit_views-163de54645.css"> 简单定制restTemplate(超时处理)

基于上个例子–===> 简单的RestTemplate示例:(暂时理解URL请求示例)
pom.xml
添加commons-lang3的支持需要里面的StringUtils方法,
比较String字符( StringUtils.equalsAnyIgnoreCase)以及 是否是数字(StringUtils.isNumeric),

添加httpclient作为底层http库。**


main:
HttpComponentsClientHttpRequestFactory配置:
连接池配置==存活时间–>最大链接数–>最大Route连接。
CloseableHttpClient:
使用custom(),设置Idle(闲置)最大时间,
evictIdleConnections禁用重发请求,
keep-live策略:使用自己定制的策略CustomConnectionKeepAliveStrategy

CustomConnectionKeepAliveStrategy:
获取HTTP.CONN_KEEP_ALIVE,查找有”timeout“的字符并且存在值,
遍历并把值转换成Long类型,没有直接赋值默认值,
最后找不到还是使用默认值。

restTemplate设置连接超时时间,读超时时间,使用前面配置的HttpComponentsClientHttpRequestFactory:

设置连接时间是1ms或者Read 的时间是1ms,连接超时会报错。。。。timeout

以上就是restTemplate超时处理的策略方案的详细内容,更多关于restTemplate超时处理的资料请关注我们其它相关文章!

(0)

相关推荐

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

    目录 排查: Java Config配置 配置文件指定 RestTemplate 设置超时时间注意点 总结 RestTemplate未设置超时时间,导致RabbitMQ队列大量堆积,消费者假死,不进行消费,类似线程堵塞. 排查: 从日志排查问题,在从进入消费者到结束期间,会调用业务服务,然而通过开始时间至结束时间,花费的时间竟然高达100多秒,查看业务服务未发现异常.出现这种问题的原因也有可能在消费期间网络波动导致HTTP连接出现问题,一直处于等待状态.由此判断可能是HTTP超时时间未设置导致的

  • RestTemplate使用代理作为跳板发送请求

    目录 本文是精讲RestTemplate第10篇,前篇的blog访问地址如下: 精讲RestTemplate第1篇-在Spring或非Spring环境下如何使用精讲RestTemplate第2篇-多种底层HTTP客户端类库的切换精讲RestTemplate第3篇-GET请求使用方法详解精讲RestTemplate第4篇-POST请求方法使用详解精讲RestTemplate第5篇-DELETE.PUT等请求方法使用详解精讲RestTemplate第6篇-文件上传下载与大文件流式下载精讲RestTe

  • RestTemplate如何通过HTTP Basic Auth认证示例说明

    本文是精讲RestTemplate第9篇,前篇的blog访问地址如下: 服务提供方通常会通过一定的授权.鉴权认证逻辑来保护API接口.其中比较简单.容易实现的方式就是使用HTTP 的Basic Auth来实现接口访问用户的认证.我们本节就来为大家介绍一下,在服务端加入Basic Auth认证的情况下,该如何使用RestTemplate访问服务端接口. 一.HttpBasic认证原理说明 首先,HttpBasic模式要求传输的用户名密码使用Base64模式进行加密.如果用户名是 "admin&qu

  • RestTemplate自定义请求失败异常处理示例解析

    目录 前言 一.异常现象 二.源码解析-默认实现 三.RestTemplate自定义异常处理 前言 本文是精讲RestTemplate第7篇,前篇的blog访问地址如下: RestTemplate在Spring或非Spring环境下使用精讲 RestTemplate实现多种底层HTTP客户端类库的切换用法 RestTemplate发送HTTP GET请求使用方法详解 RestTemplate发送HTTP POST请求使用方法详解 RestTemplate的DELETE及PUT等请求方法使用精讲

  • Resttemplate中设置超时时长方式

    目录 Resttemplate 设置超时时长 RestTemplate 设置超时时间注意点 Resttemplate 设置超时时长 为了满足调用需求,需要在使用Resttemplate发送请求时,修改超时时长,网上给出了相关修改方法,代码如下: HttpComponentsClientHttpRequestFactory rf = ((HttpComponentsClientHttpRequestFactory) restTemplate.getRequestFactory()); rf.set

  • restTemplate超时处理的策略方案

    目录 htmledit_views-163de54645.css"> 简单定制restTemplate(超时处理) 基于上个例子–===> 简单的RestTemplate示例:(暂时理解URL请求示例)pom.xml添加commons-lang3的支持需要里面的StringUtils方法,比较String字符( StringUtils.equalsAnyIgnoreCase)以及 是否是数字(StringUtils.isNumeric), 添加httpclient作为底层http库.

  • RestTemplate设置超时时间及返回状态码非200处理

    目录 1.调试postForEntity请求 2.设置超时时间 默认情况下使用RestTemplate如果返回结果的状态码是200的话就正常处理,否则都会抛出异常: 1.调试postForEntity请求 调试postForEntity请求的方法找到判断响应结果状态码的方法是org.springframework.web.client.DefaultResponseErrorHandler类中的hasError方法 @Override public boolean hasError(Client

  • Java并发编程数据库与缓存数据一致性方案解析

    目录 一.序言 二.不同的声音 1.操作的先后顺序 2.处理缓存的态度 三.线程并发分析 查询数据 1.非并发环境 2.并发环境 更新数据 1.非并发环境 2.并发环境 依赖环境 四.先数据库后缓存 数据一致性 1.问题描述 2.解决方式 特殊情况 解决方式 五.小结 一.序言 在分布式并发系统中,数据库与缓存数据一致性是一项富有挑战性的技术难点.本文将讨论数据库与缓存数据一致性问题,并提供通用的解决方案. 假设有完善的工业级分布式事务解决方案,那么数据库与缓存数据一致性便迎刃而解,实际上,目前

  • 浅谈Redis缓存更新策略

      内存淘汰 超时剔除 主动更新 说明 不用自己维护,利用Redis的内存淘汰机制,当内存不足时自动淘汰部分数据.下次查询时更新缓存 给缓存数据添加TTL时间,到期后自动删除缓存,下次查询时更新缓存 编写业务逻辑,在修改数据的同时,更新缓存 一致性 差 一般 好 维护成本 无 低 高 业务场景需求: 在基本不会更新数据的情况下可以使用内存淘汰机制 在频繁更新数据的情况下可以使用主动更新,并以超时剔除作为兜底方案. 主动更新的三种方法 Cache Aside Pattern:由缓存的调用者,在更新

  • SpringBoot设置接口超时的方法小结

    1.配置文件 application.properties中加了,意思是设置超时时间为20000ms即20s, spring.mvc.async.request-timeout=20000 2.config配置类 public class WebMvcConfig extends WebMvcConfigurerAdapter { @Override public void configureAsyncSupport(final AsyncSupportConfigurer configurer

  • 基于restTemplate遇到的编码问题及解决

    目录 背景 问题一:中文乱码 描述 分析 结论 方案 总结 问题二:特殊字符串丢失 描述 分析 结论 方案 背景 之前用restTemplate做网络间的请求,没遇到过问题.今天先是出现了中文乱码的问题,而后又出现了特殊字符丢失的问题,于是查找资料及翻看源码,将问题解决也顺便记录下. 问题一:中文乱码 描述 在创建课件时,使用GET方法传递类型和标题两个参数到服务器,服务器返回一个课件编号.类型是固定数字1,不存在问题,而标题则是用户输入字符串,也就是任意字符串.发现输入汉字的时候,结果网络传输

  • Redis缓存实例超详细讲解

    目录 1 前言 1.1 什么是缓存 1.2 缓存的作用及成本 1.3 Redis缓存模型 2 给商户信息添加缓存 3 缓存更新策略 3.1 更新策略介绍 3.2 主动更新策略 3.3 主动更新策略练习 4 缓存穿透及其解决方案 4.1 缓存穿透的概念 4.2 解决方案及实现 5 缓存雪崩的概念及其解决方案 6 缓存击穿及解决方案 6.1 什么是缓存击穿 6.2 缓存击穿解决方法 6.2.1 互斥锁 6.2.2 逻辑过期 1 前言 1.1 什么是缓存 缓存就是数据交换的缓冲区(称作Cache [

  • java开发主流定时任务解决方案全横评详解

    目录 引言 Crontab 目标定位 使用方式 实现原理 方案分析 Spring Task 目标定位 使用方式 实现原理 方案分析 ElasticJob 目标定位 使用方式 实现原理 方案分析 XXLJob 目标定位 使用方式 实现原理 方案分析 Serverless Job 目标定位 使用方式 实现原理 方案分析 总结 引言 定时任务作为一种按照约定时间执行预期逻辑的通用模式,在企业级开发中承载着丰富的业务场景,诸如后台定时同步数据生成报表,定时清理磁盘日志文件,定时扫描超时订单进行补偿回调等

  • 详解重试框架Spring retry实践

    spring retry是从spring batch独立出来的一个能功能,主要实现了重试和熔断.对于重试是有场景限制的,不是什么场景都适合重试,比如参数校验不合法.写操作等(要考虑写是否幂等)都不适合重试.远程调用超时.网络突然中断可以重试.在微服务治理框架中,通常都有自己的重试与超时配置,比如dubbo可以设置retries=1,timeout=500调用失败只重试1次,超过500ms调用仍未返回则调用失败.在spring retry中可以指定需要重试的异常类型,并设置每次重试的间隔以及如果重

  • spring cloud Ribbon用法及原理解析

    这篇文章主要介绍了spring cloud Ribbon用法及原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 简介 这篇文章主要介绍一下ribbon在程序中的基本使用,在这里是单独拿出来写用例测试的,实际生产一般是配置feign一起使用,更加方便开发.同时这里也通过源码来简单分析一下ribbon的基本实现原理. 基本使用 这里使用基于zookeeper注册中心+ribbon的方式实现一个简单的客户端负载均衡案例. 服务提供方 首先是一个

随机推荐