我们希望将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服务器上应用上述过滤器时,我没有看到查询/秒的任何减少。
我如何知道过滤器是否有效并且根据我的要求限制其速率?