apache / brpc

brpc is an Industrial-grade RPC framework using C++ Language, which is often used in high performance system such as Search, Storage, Machine learning, Advertisement, Recommendation etc. "brpc" means "better RPC".
https://brpc.apache.org
Apache License 2.0
16.56k stars 3.98k forks source link

使用BRPC作为HTTP服务端,如何设置最大连接数、请求处理超时时间? #2808

Open Yeehok opened 3 weeks ago

Yeehok commented 3 weeks ago

目前在brpc::ServerOptions内找到两个参数 idle_timeout_sec和method_max_concurrency,分别描述为“连接但无数据传输时的连接关闭时间”和“最大并发数” 目前实际测试过程中(使用slowhttptest工具),当持续建立连接(比如pending 1w个连接),并且持续缓慢发送数据时,服务会被打爆并变得不可用。 所以请问对于使用BRPC启动的HTTP Service,是否有支持 限制最大连接数,和超时断开连接 的设置。

chenBright commented 2 weeks ago

是否有支持 限制最大连接数,和超时断开连接 的设置

目前不支持。

服务会被打爆并变得不可用

具体是什么错误呢?

Yeehok commented 2 weeks ago

服务会被打爆并变得不可用

具体是什么错误呢?

表现上来看,就是服务端不再接受HTTP请求,客户端会超时断开

chenBright commented 2 weeks ago

可以按照文档排查一下服务端的问题。

Huixxi commented 2 weeks ago

目前在brpc::ServerOptions内找到两个参数 idle_timeout_sec和method_max_concurrency,分别描述为“连接但无数据传输时的连接关闭时间”和“最大并发数” 目前实际测试过程中(使用slowhttptest工具),当持续建立连接(比如pending 1w个连接),并且持续缓慢发送数据时,服务会被打爆并变得不可用。 所以请问对于使用BRPC启动的HTTP Service,是否有支持 限制最大连接数,和超时断开连接 的设置。

参考https://github.com/apache/brpc/blob/master/docs/cn/server.md#%E9%99%90%E5%88%B6%E6%9C%80%E5%A4%A7%E5%B9%B6%E5%8F%91 进行设置和验证。