小编jcl*_*ent的帖子

Undertow 按应用程序属性设置每个连接的最大并发请求数

我的主要目标是设置 Undertow 的最大并发请求连接限制。

我尝试通过属性进行配置来设置它。但这不起作用。

  • application.yml undertow:工作线程:1 io线程:1选项:服务器:MAX_CONCURRENT_REQUESTS_PER_CONNECTION:1

我研究了如何限制每个请求的最大连接数,并发现以下内容:

为了限制 undertow 中的连接,有必要实现 RequestLimitHandler 和 RequestLimit。

“Request Limiting Handler 限制并发请求数量的处理程序。如果数量超过限制,请求将排队。如果队列已满,则请求将被拒绝。”

http://undertow.io/undertow-docs/undertow-docs-1.2.0/#built-in-handlers
Run Code Online (Sandbox Code Playgroud)

我已经尝试了下一个实现,但此处理程序不会限制请求,因为它不会返回错误 503 响应,而且我无法与 MVC 方法绑定。

1. Test case: 
     @Bean
        public UndertowServletWebServerFactory myUndertowServletWebServerFactory() {
            final UndertowServletWebServerFactory factory = new UndertowServletWebServerFactory();

            final HandlerWrapper handlerWrapperLimit = new HandlerWrapper() {

                @Override
                public HttpHandler wrap(final HttpHandler handler) {
                    final int maximumConcurrentRequests = 1;
                    final int queueSize = 100;

                    final RequestLimit requestLimit = new RequestLimit(maximumConcurrentRequests,
                        queueSize);


                    final RequestLimitingHandler limitHandler = new RequestLimitingHandler(requestLimit,
                        new ResponseCodeHandler(
                            StatusCodes.OK));

                    return limitHandler; …
Run Code Online (Sandbox Code Playgroud)

java spring-boot undertow

5
推荐指数
0
解决办法
2489
查看次数

标签 统计

java ×1

spring-boot ×1

undertow ×1