java模拟连接超时_Java:使用Toxiproxy模拟各种连接问题
java模拟连接超时
用Toxiproxy和Java的HttpURLConnection
模拟各种连接问题,以查看产生了什么样的错误:连接超时vs.读取超时vs.连接被拒绝…。
结果:
系统:openjdk 11.0.1 2018-10-16
(.setConnectTimeout 1)
=> java.net.SocketTimeoutException:连接超时(.setReadTimeout 1)
=>javax.net.ssl.SSLProtocolException: Read timed out
在HTTPS上javax.net.ssl.SSLProtocolException: Read timed out
,java.net.SocketTimeoutException: Read timed out
在HTTP上java.net.SocketTimeoutException: Read timed out
(或5s延迟或超时的Toxiproxy)- 在端口上没有监听=> java.net.ConnectException:连接被拒绝
- 没有上游配置的Toxiproxy(即,端口是开放的,但连接没有问题)=>
javax.net.ssl.SSLHandshakeException: Remote host terminated the handshake
HTTPS上javax.net.ssl.SSLHandshakeException: Remote host terminated the handshake
,java.net.SocketTimeoutException: Read timed out
HTTP上的java.net.SocketTimeoutException: Read timed out
- limit_data_downstream => java.io.IOException:过早的EOF
(我还无法模拟(但是)“连接中断/断开”。)
设置
先决条件
向/etc/hosts
添加:
127.0.0.1 proxied.google.com
毒物替代品设置
开始使用抗氧化剂:
docker pull shopify/toxiproxy
# BEFORE we `run` it: case #3
docker run --rm -p 5555:5555 -p 6666:6666 -p 8474:8474 --name toxiproxy -it shopify/toxiproxy
配置它(我们可以只发布到:8474
但是使用CLI更容易):
$ docker exec -it toxiproxy /bin/sh
/ # cd /go/bin/
# ./toxiproxy-cli create google -l 0.0.0.0:6666 -u www.google.com:443 # BEFORE this is run: case #4
# ./toxiproxy-cli toxic add google -t latency -a latency=5000 # case #2
Added downstream latency toxic 'latency_downstream' on proxy 'google
# ./toxiproxy-cli toxic remove google -n latency_downstream
Removed toxic 'latency_downstream' on proxy 'google'# ./toxiproxy-cli toxic add google -t timeout -a timeout=2000 # case #2
Added downstream timeout toxic 'timeout_downstream' on proxy 'google'
# ./toxiproxy-cli toxic remove google -n timeout_downstream
Removed toxic 'timeout_downstream' on proxy 'google'# ./toxiproxy-cli toxic add google -t limit_data -a bytes=5000 # case #5
Added downstream limit_data toxic 'limit_data_downstream' on proxy 'google'
测试代码
(import '[java.net URL HttpURLConnection])
(->(doto ^HttpURLConnection (.openConnection (URL. "https://proxied.google.com:6666/"));; BEWARE: JVM *must* be started with `-Dsun.net.http.allowRestrictedHeaders=true` to allow setting the Host:(.setRequestProperty "Host" "www.google.com")(.setConnectTimeout 1000)(.setReadTimeout 1000))(.getInputStream)slurp)
巴克特
阅读我的toxiproxy模拟网络超时以了解为什么我们需要打扰/etc/hosts
和Host
标头。
翻译自: https://www.javacodegeeks.com/2018/11/java-simulating-connection-problems.html
java模拟连接超时
java模拟连接超时_Java:使用Toxiproxy模拟各种连接问题相关推荐
- linux http连接超时时间设置,Linux 下 HTTP连接超时
将项目部署到现场环境,HTTP请求莫名奇妙的连接超时,通过抓包定位了问题,是请求的IP被禁止掉.其中用到了抓包,将记录记录于此. tcpdump host 120.197.89.51 -i any - ...
- java模拟银行存取_JAVA基础案例 模拟银行存取款业务
模拟银行存取款业务 编写一个Java应用程序,模拟网上银行登录及存取款业务.登录时需判断银行卡号和银行卡密码,当输入的卡号和密码都正确时,登录成功,提示当前登录的账户名,并进入下一步选择操作类型.操作 ...
- java程序模拟atm机_Java项目实现模拟ATM机
本文实例为大家分享了Java实现模拟ATM机的具体代码,供大家参考,具体内容如下 项目名称 模拟ATM机 项目描述 简单实现ATM机功能 代码实现 测试类 public class Test { // ...
- java web atm机_Java项目实现模拟ATM机
本文实例为大家分享了Java实现模拟ATM机的具体代码,供大家参考,具体内容如下 项目名称 模拟ATM机 项目描述 简单实现ATM机功能 代码实现 测试类 public class Test { // ...
- mc java 连接超时_Java进程CPU占用高导致的网页请求超时的故障排查
一.发现问题的系统检查: 一个管理平台门户网页进统计页面提示请求超时,随进服务器操作系统检查load average超过4负载很大,PID为7163的进程占用到了800%多.  二.定位故障 根据这 ...
- java 微信请求超时_java – SQL服务器“超出锁定请求超时时间”..再次
我在尝试扩展sql server SP中的锁定超时时遇到问题.无论我尝试什么,它都会继续投掷"锁定请求超时时间超出". 我正在使用 java jtds 1.2.2,c3p0 0.9 ...
- java 远程调试超时_java 远程调试
参考: 1. 远程调试普通程序 程序打成 jar 包,使用命令行执行: java -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport= ...
- java 获取mysql链接_Java中如何获取mysql连接的3种方法总结
前言 本文主要来说说三种 Java 中获取 mysql 连接的方式,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍: 第一种:传统的连接方式: 第二种:读取配置文件方式: 第三种:数据库 ...
- java微信支付超时_Java微信支付之关闭订单
本文实例为大家分享了java微信支付之关闭订单的具体代码,供大家参考,具体内容如下 一.应用场景 商户订单支付失败需要生成新单号重新发起支付,要对原订单号调用关单,避免重复支付 系统下单后,用户支付超 ...
最新文章
- .Net使用Redis详解之ServiceStack.Redis(七)
- 【工具】13 款 Linux 实用工具推荐,个个是神器!(附下载链接)
- 服务器客户端回射程序-自己设计包的结构
- Python|队列Queue
- CF724E Goods transportation
- 干货:12个案例教你用Python玩转数据可视化(建议收藏)
- 【例题+习题】【数值计算方法复习】【湘潭大学】(三)
- 进程 线程 用户控件
- 百度智能云“云+AI”新战略年终答卷,PaddlePaddle累计开发者数量265万人
- 怎样查找某个sp中哪条sql语句存在性能问题。
- 英语翻译软件测试简历,如此翻译-2 - Victor's Testing Career - 51Testing软件测试网 51Testing软件测试网-软件测试人的精神家园...
- c语言资产管理系统设计报告,(C)固定资产管理系统论文
- Linux 就该这么学
- 谷歌生物医学翻译软件_翻译器可翻译方言和文言文 超出谷歌微软的翻译软件能力...
- 还不知道简历如何写?就该这样写!
- 思维导图软件Mindmanager2018下载
- ERROR: pip‘s dependency resolver does not currently take into account all the packages that are inst
- bzoj4008亚瑟王
- oracle数据库导出数据为csv包含clob数据
- c语言mfc怎么插入背景图片,MFC 对话框添加背景图片详细过程(两种方法)
热门文章
- P1494 [国家集训队]小Z的袜子
- 【每日一题】7月20日题目精讲—着色方案
- 【周末狂欢赛6】[AT1219]历史研究(回滚莫队),大魔法师(矩阵+线段树),单峰排列
- 字符串:凯撒密码(洛谷P1914)
- P1758-[NOI2009]管道取珠【dp】
- jzoj4248-n染色【数学,快速幂】
- 2019.01.24【NOIP普及组】模拟赛C组
- 2、oracle数据库的用户和权限
- 2、安装和连接mysql
- mongodb如何实现更新一个字段的值为另外一个字段的值?