Java文件传输带宽控制_如何限制Java中的带宽?
我写了一个Java调度程序,每小时使用:
new SAXBuilder().build(new URL(xxx));
要么
HttpConnection.connect(new URL(xxx)); // jsoup library code
获取一个大的XML / HTML文件.
我的服务器最大带宽限制是2Mbits.
当这个Java调度代码运行时,我使用超过2Mbits的带宽. (check it out)
因此,每次用户访问我的服务器时,它都太慢了.
如何限制Java计划使用较低的带宽?
(例如500Kbits)
我正在使用Ubuntu服务器.
解决方法:
没有优雅的方法来做到这一点.
一种简单但不优雅的方法是编写一个Java流包装器,它限制从包装流中读取字节的速率.例如,如果要限制为每秒1000个字节,则可以按如下方式实现int read()方法:
Stream in;
long timestamp = System.currentTimeInMillis();
int counter = 0;
int INTERVAL = 1000; // one second
int LIMIT = 1000; // bytes per INTERVAL
...
/**
* Read one byte with rate limiting
*/
@Override
public int read() {
if (counter > LIMIT) {
long now = System.currentTimeInMillis();
if (timestamp + INTERVAL >= now) {
Thread.sleep(timestamp + INTERVAL - now);
}
timestamp = now;
counter = 0;
}
int res = in.read();
if (res >= 0) {
counter++;
}
return res;
}
值得注意的是,像这样的节流率可能会产生负面影响和积极影响.在消极方面:
>它将服务器端的资源连接起来的时间更长.在这种情况下,我们讨论的是处理下载的Java线程,内核空间中的内存用于缓冲接收到的网络数据包,直到应用程序读取它们为止.
>它还可能导致更多的网络流量.问题是这种限制会破坏数据包的顺畅流动.服务器只缓冲相对较少数量的数据包,当超过该数量时,它必须告诉客户端暂时停止.这需要额外的信令分组(ACK),并且可能在该过程中丢弃数据分组.最终,需要重新传输这些数据包.
标签:java
来源: https://codeday.me/bug/20190923/1815647.html
Java文件传输带宽控制_如何限制Java中的带宽?相关推荐
- copy所有的java文件到硬盘_将d:\java目录下的所有.java文件复制到d:\jad目录下,并将原来文件的扩展名从.java改为.jad...
listFiles方法接受一个FileFilter对象,这个FileFilter对象就是过虑的策略对象,不同的人提供不同的FileFilter实现,即提供了不同的过滤策略. //将d:\java目录下 ...
- 不小心把java文件删除了_如何使用Java恢复已删除的文件?
小编典典 要恢复已删除的文件,需要了解底层文件系统的实现方式,因此您需要做一些阅读工作,然后才能到达任何地方. 从理论上讲,是的,您绝对可以使用纯Java来做到这一点.您只需要了解如何绕过文件系统从原 ...
- java 文件无法下载_无法从Java中的URL下载文件
小编典典 您byte由于 while (fileIn.read() != -1) { //1st read fileOut.write(fileIn.read()); //2nd read - 1st ...
- java 文件读取 逗号分隔_如何从Java中的文本文件中读取逗号分隔值?
我有这个文本文件,其中包含地图上不同点的纬度和经度值. 我如何将我的弦乐分成纬度和经度?与其他分隔符(如空格或制表符等)一起执行这些类型的事物的一般方法是什么? 样本文件: 28.5150462805 ...
- java 文件内容排序_在Java中对2个大型文本文件进行排序的最佳方法是什么?
我正在构建一个简单的 Java应用程序,涉及从csv文件中读取信息. csv文件中的信息以这种形式出现: "ID","Description" "AB ...
- java控制器文件内容替换_如何用Java来进行文件切割和简单的内容过滤的实现
一 由来 去年由于项目的需求,要将一个任意一个文件制作成一个xml文件,并且需要保持文件内容本身不产生变化,还要能够将这个xml重新还原为原文件.如果小型的文件还好处理,大型的xml,比如几个G的文件 ...
- java文件读取异常_关于Java:从文本文件读取会引发异常
因此,我使用了DataInputStream,FileInputStream,BufferInputStream,FileReader,BufferedReader,Scanner,将其命名. 它们都 ...
- java文件客户端下载_使用Java写一个minio的客户端上传下载文件
标签:color ati tty java system wired format media param 前言: 确保已经安装了minio的服务端 代码: pom.x ...
- cmd编译java文件中文乱码_乱码 HelloWorld 世界你好 cmd 执行输出的中文java 显示乱码 解决 另附 win无法执行编译运行javac java编译文件的解决方案...
[博客园cnblogs笔者m-yb原创,转载请加本文博客链接,笔者公众号aandb7 爱码一生,QQ群927113708, github: https://github.com/mayangbo666 ...
- java 获取文件扩展名_如何在Java中获取文件扩展名
java 获取文件扩展名 Sometimes while working with files, we need to process them differently based on their ...
最新文章
- 基于matlab的语音信号,科学网—[转载]【信息技术】【2014.06】【含源码】基于MATLAB的语音信号处理与分析 - 刘春静的博文...
- formidable ajax上传,nodejs+express+ajax实现图片上传及显示
- [Node.js] mySQL数据库 -- promise
- angualr Material Icons
- Type mismatch: cannot convert from int to byte
- 最大概率法分词及性能測试
- javaweb 发布目录
- 撸一款Flutter版『微信』
- 解决在局域网内QQ传文件慢的问题(转)
- 计算机的颜色英语怎么说,颜色的英文是什么怎么说
- 【评测】Alfa Aesar分子砌块
- 网站域名备案备注怎么写
- 前端面试总结2018.07
- RK3566-安卓一体机-用户案例
- 攻防世界-MISC-互相伤害
- IIS发布 部署 ASP网站
- git commit命令详解
- registration 计算机视觉
- 标准化(Normalization)
- 前端向--BLOB文件处理及常用输入校验