dan*_*ann 7 java distributed http
我正在开发一个用于通过HTTP进行通信的Java库,我想测试其可靠性和性能,以防网络问题,如数据包丢失,高延迟,低带宽和拥塞.我正在使用Apache的httpclient库从客户端进行连接,而Java自己的com.sun.net.httpserver.HttpServer用于启动HTTP服务器.
是否有可用的库来做这种事情,或者我应该自己推出?我想我可以尝试将自己的org.apache.http.conn.scheme.SchemeSocketFactory插入客户端,并模拟上面提到的几个问题,但我更喜欢使用已经有效的东西:-)
这类似于为单元测试创建TCP网络错误的问题,但我正在寻找在Linux上涉及Java的解决方案.我看过针对该问题的建议点击,但我不确定它能提供我正在寻找的东西.
小智 3
由于 Java API 无法访问低级网络 API,因此对其进行模拟将具有挑战性。
或者,Apache HTTP Core 组件库可能可以帮助您模拟延迟和数据丢失以及可能的带宽问题。该库具有注入您自己的会话输入和输出缓冲区的功能。您可以在HTTP Core 的高级功能中找到文档
通过注入你自己的缓冲区
您还可以查看Grinder 项目中可用的TCPProxy 。我没有仔细看过。该文档以EchoFilter为例,但我相信应该可以扩展过滤器以延迟流中字节的发送和接收。但使用代理来模拟网络问题是有意义的。这样,您的客户端和服务器就可以对正在进行的测试一无所知。
在这两种情况下,网络问题的模拟似乎都是 Java 中可能做出的最大努力。或者,您可以设置本地防火墙并将其配置为拦截和处理它收到的数据包。
希望这对您有所帮助。
| 归档时间: |
|
| 查看次数: |
904 次 |
| 最近记录: |