为什么这个QoS码头过滤器不起作用?

时间:2017-08-06 21:53:55

标签: java solr jetty throttling rate-limiting

我们希望将QoS Jetty Filter应用于我们的Solr 6.5服务器,以便任何高于基准费率的费率都会被彻底拒绝。

存在所需的jar文件:

/app/solr6/server/lib/jetty-servlets*.jar
/app/solr6/server/lib/jetty-util*.jar

我们可以在其中添加过滤器配置的XML文件位于:

/app/solr6/server/solr-webapp/webapp/WEB-INF/web.xml

Solr与-Djetty.home=/app/solr6/server一起运行,我已经确认如果我们删除上面的XML文件,solr就无法在jetty中启动。因此,上面的XML文件是放置QoS过滤器的正确位置。

问题是我无法使用以下配置启动和运行QoS过滤器:

<filter>
  <filter-name>QoSFilter</filter-name>
  <filter-class>org.eclipse.jetty.servlets.QoSFilter</filter-class>
  <init-param>
    <param-name>maxRequests</param-name>
    <param-value>1</param-value>
  </init-param>
  <init-param>
    <param-name>waitMS</param-name>
    <param-value>1000</param-value>
  </init-param>
  <init-param>
    <param-name>suspendMS</param-name>
    <param-value>500</param-value>
  </init-param>
 </filter>
 <filter-mapping>
  <filter-name>QoSFilter</filter-name>
  <url-pattern>*</url-pattern>
</filter-mapping>

我有一个运行上述配置的单个节点Solr,但似乎没有发生速率限制。我有一个有30个线程的客户端(在8核机器上运行),当我在Solr服务器上应用上述过滤器时,我没有看到查询/秒的任何减少。

我如何知道过滤器是否有效并且根据我的要求限制其速率?

0 个答案:

没有答案