v0.25.6
This commit is contained in:
1 parent
c819f0a335
commit
e1a59f6e56
53 files changed
+817
-380
No files matched your search
+19
-1
@@ -54,6 +54,16 @@ pub struct Keepalive {
|
||||
pub idle_timeout_seconds: u64,
|
||||
pub max_idle_per_host: usize,
|
||||
pub tcp_keepalive_seconds: u64,
|
||||
/// Rebuild a backend Hyper client after this many requests. The counter is
|
||||
/// per backend/client generation, not per TCP connection. Zero disables
|
||||
/// request-count based recycling.
|
||||
pub pool_recycle_requests: u64,
|
||||
/// Maximum age of one backend Hyper client generation. Zero disables
|
||||
/// time-based recycling.
|
||||
pub pool_recycle_seconds: u64,
|
||||
/// Bound Hyper's adaptive HTTP/1 read buffer per connection. Hyper requires
|
||||
/// at least 8192 bytes. This affects upstream HTTP/1 only.
|
||||
pub http1_max_buffer_bytes: usize,
|
||||
}
|
||||
impl Default for Keepalive {
|
||||
fn default() -> Self {
|
||||
@@ -62,6 +72,9 @@ impl Default for Keepalive {
|
||||
idle_timeout_seconds: 30,
|
||||
max_idle_per_host: 4,
|
||||
tcp_keepalive_seconds: 30,
|
||||
pool_recycle_requests: 25_000,
|
||||
pool_recycle_seconds: 3_600,
|
||||
http1_max_buffer_bytes: 131_072,
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -255,7 +268,12 @@ impl Settings {
|
||||
ensure!(
|
||||
(1..=3600).contains(&k.idle_timeout_seconds)
|
||||
&& (1..=3600).contains(&k.tcp_keepalive_seconds)
|
||||
&& (1..=64).contains(&k.max_idle_per_host),
|
||||
&& (1..=64).contains(&k.max_idle_per_host)
|
||||
&& (k.pool_recycle_requests == 0
|
||||
|| (1_000..=10_000_000).contains(&k.pool_recycle_requests))
|
||||
&& (k.pool_recycle_seconds == 0
|
||||
|| (60..=604_800).contains(&k.pool_recycle_seconds))
|
||||
&& (8_192..=1_048_576).contains(&k.http1_max_buffer_bytes),
|
||||
"invalid keepalive limits"
|
||||
);
|
||||
ensure!(
|
||||
|
||||
Reference in new issue
Block a user