feat: add TCP keepalive options and connection pooling for improved performance
- Added `socket2` dependency for socket options. - Introduced `keep_alive`, `keep_alive_initial_delay_ms`, and `max_connections` fields in `ConnectionConfig`. - Implemented TCP keepalive settings in `TcpListenerManager` for both client and backend connections. - Created a new `ConnectionPool` for managing idle HTTP/1.1 and HTTP/2 connections to reduce overhead. - Enhanced TLS configuration to support ALPN for HTTP/2. - Added performance tests for connection pooling, stability, and concurrent connections.
This commit is contained in:
@@ -221,6 +221,9 @@ impl RustProxy {
|
||||
.iter()
|
||||
.filter_map(|s| s.parse::<std::net::IpAddr>().ok())
|
||||
.collect(),
|
||||
keep_alive: options.keep_alive.unwrap_or(true),
|
||||
keep_alive_initial_delay_ms: options.keep_alive_initial_delay.unwrap_or(60_000),
|
||||
max_connections: options.max_connections.unwrap_or(100_000),
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user