fix: harden multi-pod delivery and load verification

This commit is contained in:
richjohnrambo
2026-09-27 03:37:32 +08:00
parent a2de100f2b
commit ce3250be64
33 changed files with 1340 additions and 94 deletions
+19
View File
@@ -34,6 +34,7 @@ import (
_ "github.com/tinode/chat/server/auth/code"
_ "github.com/tinode/chat/server/auth/rest"
_ "github.com/tinode/chat/server/auth/token"
adapter "github.com/tinode/chat/server/db"
"github.com/tinode/chat/server/store/types"
// Database backends
@@ -516,6 +517,23 @@ func main() {
logs.Info.Println("All done, good bye")
}()
statsRegisterDbStats()
if kafkaConfigured(config.Kafka) {
tenants, tenantErr := store.Tenants.ListActive(10000)
if tenantErr != nil {
logs.Err.Fatal("Failed to list tenants for Kafka message schema validation:", tenantErr)
}
tenantIDs := make([]types.TenantID, 0, len(tenants))
for i := range tenants {
tenantIDs = append(tenantIDs, tenants[i].ID)
}
validator, ok := store.Store.GetAdapter().(adapter.TenantMessageSchemaAdapter)
if !ok {
logs.Err.Fatal("Kafka message persistence requires a message schema validator")
}
if err = validator.TenantMessageSchemaValidate(tenantIDs); err != nil {
logs.Err.Fatal("Kafka message persistence schema validation failed:", err)
}
}
if err = initKafkaRuntime(config.Kafka); err != nil {
logs.Err.Fatal("Failed to initialize Kafka:", err)
@@ -860,6 +878,7 @@ func main() {
mux.HandleFunc(sspath, serveStatus)
}
mux.HandleFunc("/healthz", serveHealthz)
mux.HandleFunc("/livez", serveLivez)
mux.HandleFunc("/metrics", serveMetrics)
// Public legal pages are opened directly by clients before login.