feat: implement zero-downtime smooth reload and graceful shutdown using SO_REUSEPORT

This commit is contained in:
2026-01-27 13:41:56 +08:00
parent 64980f00c5
commit a71e950734
8 changed files with 294 additions and 122 deletions

27
Cargo.lock generated
View File

@@ -1816,6 +1816,15 @@ dependencies = [
"autocfg",
]
[[package]]
name = "memoffset"
version = "0.9.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "488016bfae457b036d996092f6cb448677611ce4449e970ceaf42695203f218a"
dependencies = [
"autocfg",
]
[[package]]
name = "mime"
version = "0.3.17"
@@ -1910,7 +1919,20 @@ dependencies = [
"bitflags 1.3.2",
"cfg-if",
"libc",
"memoffset",
"memoffset 0.6.5",
]
[[package]]
name = "nix"
version = "0.31.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "225e7cfe711e0ba79a68baeddb2982723e4235247aefce1482f2f16c27865b66"
dependencies = [
"bitflags 2.10.0",
"cfg-if",
"cfg_aliases",
"libc",
"memoffset 0.9.1",
]
[[package]]
@@ -2275,7 +2297,7 @@ dependencies = [
"httpdate",
"libc",
"log",
"nix",
"nix 0.24.3",
"once_cell",
"openssl-probe 0.1.6",
"parking_lot",
@@ -3876,6 +3898,7 @@ dependencies = [
"httparse",
"ipnet",
"libc",
"nix 0.31.1",
"once_cell",
"openssl",
"pingora",