我写了一个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中的带宽?相关推荐

  1. copy所有的java文件到硬盘_将d:\java目录下的所有.java文件复制到d:\jad目录下,并将原来文件的扩展名从.java改为.jad...

    listFiles方法接受一个FileFilter对象,这个FileFilter对象就是过虑的策略对象,不同的人提供不同的FileFilter实现,即提供了不同的过滤策略. //将d:\java目录下 ...

  2. 不小心把java文件删除了_如何使用Java恢复已删除的文件?

    小编典典 要恢复已删除的文件,需要了解底层文件系统的实现方式,因此您需要做一些阅读工作,然后才能到达任何地方. 从理论上讲,是的,您绝对可以使用纯Java来做到这一点.您只需要了解如何绕过文件系统从原 ...

  3. java 文件无法下载_无法从Java中的URL下载文件

    小编典典 您byte由于 while (fileIn.read() != -1) { //1st read fileOut.write(fileIn.read()); //2nd read - 1st ...

  4. java 文件读取 逗号分隔_如何从Java中的文本文件中读取逗号分隔值?

    我有这个文本文件,其中包含地图上不同点的纬度和经度值. 我如何将我的弦乐分成纬度和经度?与其他分隔符(如空格或制表符等)一起执行这些类型的事物的一般方法是什么? 样本文件: 28.5150462805 ...

  5. java 文件内容排序_在Java中对2个大型文本文件进行排序的最佳方法是什么?

    我正在构建一个简单的 Java应用程序,涉及从csv文件中读取信息. csv文件中的信息以这种形式出现: "ID","Description" "AB ...

  6. java控制器文件内容替换_如何用Java来进行文件切割和简单的内容过滤的实现

    一 由来 去年由于项目的需求,要将一个任意一个文件制作成一个xml文件,并且需要保持文件内容本身不产生变化,还要能够将这个xml重新还原为原文件.如果小型的文件还好处理,大型的xml,比如几个G的文件 ...

  7. java文件读取异常_关于Java:从文本文件读取会引发异常

    因此,我使用了DataInputStream,FileInputStream,BufferInputStream,FileReader,BufferedReader,Scanner,将其命名. 它们都 ...

  8. java文件客户端下载_使用Java写一个minio的客户端上传下载文件

    标签:color   ati   tty   java   system   wired   format   media   param 前言: 确保已经安装了minio的服务端 代码: pom.x ...

  9. cmd编译java文件中文乱码_乱码 HelloWorld 世界你好 cmd 执行输出的中文java 显示乱码 解决 另附 win无法执行编译运行javac java编译文件的解决方案...

    [博客园cnblogs笔者m-yb原创,转载请加本文博客链接,笔者公众号aandb7 爱码一生,QQ群927113708, github: https://github.com/mayangbo666 ...

  10. java 获取文件扩展名_如何在Java中获取文件扩展名

    java 获取文件扩展名 Sometimes while working with files, we need to process them differently based on their ...

最新文章

  1. 基于matlab的语音信号,科学网—[转载]【信息技术】【2014.06】【含源码】基于MATLAB的语音信号处理与分析 - 刘春静的博文...
  2. formidable ajax上传,nodejs+express+ajax实现图片上传及显示
  3. [Node.js] mySQL数据库 -- promise
  4. angualr Material Icons
  5. Type mismatch: cannot convert from int to byte
  6. 最大概率法分词及性能測试
  7. javaweb 发布目录
  8. 撸一款Flutter版『微信』
  9. 解决在局域网内QQ传文件慢的问题(转)
  10. 计算机的颜色英语怎么说,颜色的英文是什么怎么说
  11. 【评测】Alfa Aesar分子砌块
  12. 网站域名备案备注怎么写
  13. 前端面试总结2018.07
  14. RK3566-安卓一体机-用户案例
  15. 攻防世界-MISC-互相伤害
  16. IIS发布 部署 ASP网站
  17. git commit命令详解
  18. registration 计算机视觉
  19. 标准化(Normalization)
  20. 前端向--BLOB文件处理及常用输入校验

热门文章

  1. 网站ssl证书出现错误如何解决
  2. 计算机专业就业崩溃,计算机专业就业“遇冷说”引发争议
  3. win10 请求操作需要提升解决方案
  4. unity3d + lua + 斗地主 系列 (2) 创建扑克规则
  5. 基于ssm java乐轩公司订餐系统
  6. 摄像头各参数的意义_监控摄像头各种基本参数名称说明
  7. GEE-Python遥感大数据分析
  8. Unity Editor 编辑器介绍
  9. K.function的用法
  10. 面试运维宝典专栏的小伙伴,互联网老辛来给你送福利了