java模拟连接超时_Java:使用Toxiproxy模拟各种连接问题

java模拟连接超时

用Toxiproxy和Java的HttpURLConnection模拟各种连接问题,以查看产生了什么样的错误:连接超时vs.读取超时vs.连接被拒绝…。

结果:

系统:openjdk 11.0.1 2018-10-16

  1. (.setConnectTimeout 1) => java.net.SocketTimeoutException:连接超时
  2. (.setReadTimeout 1) => javax.net.ssl.SSLProtocolException: Read timed out在HTTPS上javax.net.ssl.SSLProtocolException: Read timed outjava.net.SocketTimeoutException: Read timed out在HTTP上java.net.SocketTimeoutException: Read timed out (或5s延迟或超时的Toxiproxy)
  3. 在端口上没有监听=> java.net.ConnectException:连接被拒绝
  4. 没有上游配置的Toxiproxy(即,端口是开放的,但连接没有问题)=> javax.net.ssl.SSLHandshakeException: Remote host terminated the handshake HTTPS上javax.net.ssl.SSLHandshakeException: Remote host terminated the handshakejava.net.SocketTimeoutException: Read timed out HTTP上的java.net.SocketTimeoutException: Read timed out
  5. 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/hostsHost标头。

翻译自: https://www.javacodegeeks.com/2018/11/java-simulating-connection-problems.html

java模拟连接超时

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/332772.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java中的僵死进程_Java中线程间怎么通讯?什么叫僵死线程?

《尸家保镖》 《猛鬼出千》 《不死心灵》 《大家发财》 《灵幻少女》 《九天玄女》 《僵尸至尊》 《湘西尸王》 《尸前想后》 《魔高一丈》 《一世好命》 《妖兽尸王》 《人蝎大战》 《星际钝胎》 《艳女还魂》 《邪完再邪》 《艳鬼山坟》 《尸破今天阳光很好,坐在窗…

正则表达式中的分组的匹配次数的理解

正则表达式:/((\d){1,6})/ 这个正则表达式可以匹配任意数量的数字。 限定符 指的是前面的子表达式 (\d){1,6} 可以出现 1 次或者多次,所以如果是贪婪匹配,每次迭代匹配的数字个数可以超过 6 个(即 ≥1);如…

aws使用技巧_AWS:避免那些“神圣的法案”时刻的一些技巧

aws使用技巧云非常棒:几乎100%的可用性,接近零的维护,按需付费,最重要的是,它具有无限的可扩展性。 但是最后两个很容易把你咬回去,把那令人敬畏的事情变成一场噩梦。 偶尔您会看到类似的故事…

JAVA类和对象访问_Java类和对象

一、类类是封装对象的属性和行为的载体,在Java语言中对象的属性以成员变量的形式存在,而对象的方法以成员方法的形式存在。1. 类的构造方法构造方法是一个与类同名的方法,对象的创建就是通过构造方法完成的,构造方法分为有参构造方…

扩展方法 枚举值_扩展枚举功能的两种方法

扩展方法 枚举值前言 在上一篇文章中,我解释了如何以及为什么在Java代码中使用enums而不是switch/case控制结构。 在这里,我将展示如何扩展现有enums功能。 介绍 Java enum是一种编译器魔术。 在字节码中,任何enum都表示为扩展抽象类java.la…

正则表达式中关于字符集的问题

/[abc]/,匹配1或者多个方括号中的任意字符,方括号中的字符是“或者”的关系,等价于 /(a|b|c)/ /(abc)/,匹配1个或者多个 abc,abc 是一个整体,如下图所示: /[0-9|_|-]/,匹配由数字…

spring 构造函数注入_Spring依赖注入–字段vs设置器vs构造函数注入

spring 构造函数注入欢迎使用Spring Dependency Injection –字段,设置器,构造函数注入教程。 了解场注入 , 二传手注入和构造函数注入之间的区别。 借助代码示例,我们将看到使用每个示例的好处以及为什么选择一个而不是另一个。 …

java 快速io_Java编程在ICPC快速IO实现源码

本文将介绍Java在ICPC快速IO实现方法,下面看看具体代码。不处理EOF:import java.io.OutputStream;import java.io.IOException;import java.io.InputStream;import java.io.PrintWriter;import java.util.Arrays;import java.util.Random;import java.io…

adf开发_如何在ADF中将参数传递给ActionListener

adf开发在某些情况下,需要将值传递给ADF Button的ActionListener。 可以由actionListeners调用的方法只有一个ActionEvent类型的参数。 因此,我将解释如何将参数传递给该bean方法,但是它在方法签名中仅包含一个参数ActionEvent。 我在页面…

JavaScript/JS的学习

文章目录JavaScript 简介JavaScript 发展史ECMAScript基本语法与 HTML 结合方式数据类型类型转换非 number 转成 number非 boolean 转成 boolean特殊语法变量运算符双等号()全等号()流程控制语句switch...casewhilefor 循环对象Fu…

java soap协议头_自己调用webservice方法总结(带请求头SoapHeader)

调用webservice总结:1.加入第三方的jar包 Ksoap2-android-XXX2.访问响应的webservice的网站,查看响应的信息,得到nameSpace,methodName,url,soapAction3.如果request信息还有带有SoapHander的。那么就要封装…

注册界面演示代码(前端开发)

<!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>注册</title><style>* {margin: 0px;padding: 0px;/*这样的设置会阻止元素大小的改变&#xff0c;因为设置内边距时元素大小会发生改变*/b…

apache ignite_使用Apache Ignite瘦客户端– Apache Ignite内部博客

apache ignite从2.4.0版本开始&#xff0c;Apache Ignite引入了一种连接到Ignite群集的新方法&#xff0c;该方法允许与Ignite群集进行通信而无需启动Ignite客户端节点。 从历史上看&#xff0c;Apache Ignite提供了客户端和服务器节点两个概念。 点燃旨在用作轻量级模式的客户…

java 网络编程 方式_JAVA网络编程

概念BIO 阻塞io&#xff0c;1.4之前NIO no-blocking io 非阻塞io&#xff0c;jdk1.4AIO 异步io&#xff0c;jdk1.7浏览器输入网址&#xff0c;敲下回车之后发生了什么&#xff1f;1.URL解析2.DNS解析概念&#xff1a;Domain Name System&#xff0c;域名系统&#xff0c;本质…

如何设置背景图(前端开发)

<!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>模糊化背景图</title><style>body {background-image: url("image/bjt03.jpg");background-repeat: no-repeat;background-atta…

java字符串底层实现_「JAVA」细述合理创建字符串,分析字符串的底层存储,你不该错过...

Java基础之字符串操作——String字符串什么是字符串&#xff1f;如果直接按照字面意思来理解就是多个字符连接起来组合成的字符序列。为了更好的理解以上的理论&#xff0c;我们先来解释下字符序列&#xff0c;字符序列&#xff1a;把多个字符按照一定的顺序排列起来&#xff1…

查看oracle会话和进程_带有Oracle Digital Assistant和Fn Project的会话式UI。 第三部分,迁移到云...

查看oracle会话和进程在这篇文章中&#xff0c;我将继续在Oracle Digital Assistant和Oracle Digital Assistant之上为FlexDeploy实现对话式UI的故事。 Fn项目 。 今天&#xff0c;我将围绕聊天机器人工作的无服务器API迁移到云中&#xff0c;因此整个解决方案都在云中工作&am…

浏览器用户脚本管理器(Tampermonkey)

文章目录脚本管理器的好处是什么&#xff1f;用户脚本管理器有哪些&#xff1f;如何使用&#xff1f;安装脚本示例常用脚本脚本管理器的好处是什么&#xff1f; 用户脚本管理器将在您的用户脚本管理方面提供更多的便利。 它提供了诸如便捷脚本安装、自动更新检查、标签中的脚本…

服务器$java_top路径_ERP实施项目-MD120_FIN000_即时打印_V1.0

中国移动项目即时打印开发在此将web的即时打印开发成通用程序。1、首先通过创建rtf模板制定报表的输出格式&#xff1b;2、将需要输出的数据插入客户化表cux_fnd_xml_pool中&#xff1b;3、通过EBS功能调用CuxFndXmlpViewer.jsp。此jsp程序会根据传入的参数判断调用哪个rtf模板…