Tomcat:限制本地主机的带宽

标签 tomcat configuration localhost bandwidth dial-up

是否可以限制Tomcat服务器的带宽?我需要它来模拟在慢速(拨号)Internet 连接上的站点工作。所有测试都在本地主机中进行。

谢谢大家!

最佳答案

通过创建一个阀,这在 Tomcat 中很容易实现。

创建一个从 tomcat 扩展 ValveBase 类的类。

里面的代码应该是这样的:

/**
 * {@inheritDoc}
 */
@Override
public void invoke(final Request request, final Response response) 
                   throws IOException, ServletException {

    if (randomDelay != 0) {
        long delay = minDelay + randomizer.nextInt(randomDelay);
        try {
            if (LOGGER.isDebugEnabled()) {
                LOGGER.debug("sleeping for " + delay + " ms");
            }
            Thread.sleep(delay);
        } catch (InterruptedException e) {
            if (LOGGER.isDebugEnabled()) {
                LOGGER.debug("someone wake me up : " + e.getMessage());
            }
        }
    }

    // let's continue !
    getNext().invoke(request, response);
}

将其编译到一个 jar 中,您将放入 tomcat lib 目录(通常是 {catalina.home}/lib)。

最后在 server.xml 中添加阀门声明:

<Server ...>
  <Service name="Catalina">
   <Engine name="Catalina" defaultHost="localhost">
     (...)
     <Host name="localhost" ...>
       <Valve className="tools.tomcat.RandomDelayValve" />

关于Tomcat:限制本地主机的带宽,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12027422/

相关文章:

tomcat - 缺少顺序 log4j 输出

java - 如何在 apache HTTPClient 中处理相对 URL

java - System.getProperty ("user.home") 在 Tomcat 上运行时返回/root

configuration - 如何在 Windows ClearCase 中使用 ediff (emacs diff) 作为差异/合并工具?

Hadoop reducer 数量配置选项优先级

java - Apache Tomcat 关机 :java.net.ConnectException:连接被拒绝

android - Proguard 不会在 Android Studio 中混淆

css - 在拥有托管站点时调用样式表

localhost - 如何列出在不同端口上运行的所有进程/服务

linux - 如何在本地机器上解析域名