一次线上http接口调用不通相关的解决过程

2016-05-25 08:58:34

昨天线上小白系统因为调用外部http接口,超时不释放,导致页面反应很慢,时间一长,报502错误。

上网查了下,502错误是因为服务对于客户的请求没有得到及时的反应,查询日志,发现很多调http接口异常,页面反应也很慢。

瞬间想到缩短http客户端调用http接口的超时时间,搜到这个博客http://blog.csdn.net/xinying0424/article/details/36006383  感谢

HttpClient 4:
连接超时:

连接超时
httpclient.getParams().setParameter(CoreConnectionPNames.CONNECTION_TIMEOUT,60000);
// 或者
HttpConnectionParams.setConnectionTimeout(params,6000);
读取超时:

httpclient.getParams().setParameter(CoreConnectionPNames.SO_TIMEOUT,60000);
// 或者
HttpConnectionParams.setSoTimeout(params,60000);
HttpClient 3:
连接超时:
httpClient.getHttpConnectionManager().getParams().setConnectionTimeout(60000);
读取超时:
httpClient.getHttpConnectionManager().getParams().setSoTimeout(60000);

发现我本来代码里就写了这个,只是时间配置的实在太长

private static MultiThreadedHttpConnectionManager connectionManager = null;
    private static int connectionTimeOut = 2000;t
    private static int socketTimeOut = 10000;
    private static int maxConnectionPerHost = 20;
    private static int maxTotalConnections = 20;
    private static HttpClient client;

    static {
        connectionManager = new MultiThreadedHttpConnectionManager();
        connectionManager.getParams().setConnectionTimeout(connectionTimeOut);
        connectionManager.getParams().setSoTimeout(socketTimeOut);
        connectionManager.getParams().setDefaultMaxConnectionsPerHost(maxConnectionPerHost);
        connectionManager.getParams().setMaxTotalConnections(maxTotalConnections);
        client = new HttpClient(connectionManager);
    }

然后我把socketTimeOut调整为2000,本地想测试下,结果。。。

java.lang.IllegalArgumentException: host parameter is null  调用接口报错

查了下 http://wang371134086.iteye.com/blog/1688458  竟然调用http接口没写http://,加上这段解决

问题解决记录下,感谢一下博客。

http://blog.csdn.net/xinying0424/article/details/36006383
http://wang371134086.iteye.com/blog/1688458

http://blog.sina.com.cn/s/blog_a577563c01013tlz.html

http://jinnianshilongnian.iteye.com/blog/2089792

http://www.zhihu.com/question/21647204

时间: 2024-11-08 10:01:22

一次线上http接口调用不通相关的解决过程的相关文章

11.9支付宝线上支付接口使用

2018-11-9 14:07:40 支付宝线上支付接口使用 放上github连接: https://github.com/TrueNewBee/pythonDemo/blob/master/Alipay.rar 详情看readme,源码里面有详细注释 越努力,越幸运!!!永远不要高估自己, 明天周末,把博客好好看一下!打算下星期回学校! 主要讲的是支付宝接口使用,然后留时间让写路飞的表,晚上写一下! 贴上笔记 s9day107 内容回顾: 1. 为什么会有跨域? 浏览器具有同源策略所有才出现跨

推荐几个我近期排查线上http接口偶发415时用到的工具

导读:近期有一个业务部门的同学反馈说他负责的C工程在小概率情况下SpringMvc会返回415,通过输出的日志可以确定是SpringMvc找不到content-type这个头了,具体为什么找不到了呢?请听我娓娓道来. 关键词:http 415,SpringMvc,nginx,lua,wireshark,jmeter 问题现象: 近期接到一个同学的反馈说,他负责的C工程在小概率的情况下SpringMvc会返回415,通过输出的日志发现请求头里面并没有content-type了,所以才导致Sprin

vue 线上,本地,不同变量配置

线上的接口和本地的接口不一样,每次打包的时候要手动更改很麻烦.自动让他配置 1.修改package.json  --mode line 传参数line给配置项,编译buildline的时候,就能把line变量带给.env "scripts": { "serve": "vue-cli-service serve", "build": "vue-cli-service build", "buildli

2020年的线上教育相较于传统线下教育的优点

线上教育相较于传统线下教育的优点 首先,祝愿我们能早日战胜病毒.天佑中华,我们炎黄子孙是不可战胜的,武汉加油!中国加油! 最近,因为冠状病毒疫情,很多地区的学校都发布的在线开课.线上教育的方案,很多家长会对线上教育的方式方法产生疑问,我今天便分享一些线上教育的知识给大家,帮助家长学生了解线上教育. 线上教育即远程教育,是基于互联网技术的发展衍生的一种教育方式.相较于传统的教育方式,我觉得主要有以下几个优点. 一,线上教育打破了时间空间的限制,让学生随时随地都能学习. 只要你有网络和设备(手机.电

JVM探秘:线上CPU占用过高故障排查

线上系统突然变得卡顿或无法访问,排除网络异常的情况下,检查服务器资源占用情况,如果CPU.内存.磁盘IO等资源占用过高,就会导致无法继续处理HTTP请求. 如果是CPU占用飙高,有可能是程序中存在死循环.死锁导致的,也有可能是内存紧张从而频繁GC导致的,要具体问题具体分析. 排查过程 这里记录一次线上CPU占用过高的故障排查过程,重点会用到jstack命令. top命令 首先,使用top命令查看服务器资源使用情况,找到CPU占用过高的进程. 发现pid为29167的Java进程CPU占用很高,已

express框架开发接口部署线上环境PM2

1.PM2介绍 PM2是一个线上环境下,用于启动nodejs进程守护的工具,用来保证服务的稳定及分摊服务器进程和压力. 2.下载安装 npm install pm2 -g  => pm2 --version  => 在package.json scripts中配置 "prd": "cross-env NODE_ENV=production pm2 start app.js" =>  npm run prd运行,运行结果如下图: 3.常用命令 启动:

轻松排查线上Node内存泄漏问题

I. 三种比较典型的内存泄漏 一. 闭包引用导致的泄漏 这段代码已经在很多讲解内存泄漏的地方引用了,非常经典,所以拿出来作为第一个例子,以下是泄漏代码: 'use strict'; const express = require('express'); const app = express(); //以下是产生泄漏的代码 let theThing = null; let replaceThing = function () { let leak = theThing; let unused =

一个Flume线上问题的排查

最近在做一个分布式调用链跟踪系统, 在两个地方采用了flume ,一个是宿主系统 ,用flume agent进行日志搜集. 一个是从kafka拉日志分析后写入hbase. 后面这个flume(从kafka拉日志分析后写入flume)用了3台  , 系统上线以后 ,线上抛了一个这样的异常: Caused by: org.apache.flume.ChannelException: Put queue for MemoryTransaction of capacity 100 full, consi

[转]线上GC故障解决过程记录

排查了三四个小时,终于解决了这个GC问题,记录解决过程于此,希望对大家有所帮助.本文假定读者已具备基本的GC常识和JVM调优知识,关于JVM调优工具使用可以查看我在同一分类下的另一篇文章: http://my.oschina.net/feichexia/blog/196575 背景说明 发生问题的系统部署在Unix上,发生问题前已经跑了两周多了. 其中我用到了Hadoop源码中的CountingBloomFilter,并将其修改成了线程安全的实现(详情见:AdjustedCountingBloo