根据http://camel.apache.org/jetty.html中的continuationTimeout的描述,我尝试配置端点码头:http://www.example.com:4000 / xxxHttpService /?continuationTimeout = 30000至 …
我想我找到了正确的配置。它不是 的 continuationTimeout 强> 但是 的 maxIdleTime 强> 可用于缓解慢速HTTP DoS攻击。
我在代码中设置如下:
JettyHttpComponent jettyComponent = getContext().getComponent("jetty", JettyHttpComponent.class); Map<String, Object> socketConnectorProperties = new HashMap<String, Object>(); socketConnectorProperties.put("maxIdleTime", "50000"); //set timeout is 50s jettyComponent.setSocketConnectorProperties(socketConnectorProperties);
然后测试如下,它按预期通过测试。
[root@clab295node10 ~]# python mytest.py The seconds Camel Jetty wait for a complete HTTP request header are 50.6753239632
你可以找到的描述 的 maxIdleTime 强> 在以下链接: https://wiki.eclipse.org/Jetty/Howto/Configure_Connectors
我不知道您使用的是哪个版本的Jetty。但考虑到 这个文件 ,似乎你使用maxIdleTime,lowResourcesConnections和lowResourcesMaxIdleTime之间的混合。
根据文档,maxIdleTime将用于正常连接,当达到lowResourcesConnections时,jetty将切换为使用lowResourcesMaxIdleTime上的值hold。
看一看 这个链接 了解更多信息。
我还没有测试过自己。但我很快就会这样做。