fix(server): shed overloaded group websocket fanout

This commit is contained in:
richjohnrambo
2026-10-07 21:23:22 +08:00
parent 58c15efad5
commit ac6cd3c6e8
4 changed files with 57 additions and 2 deletions
+9 -1
View File
@@ -2068,7 +2068,15 @@ func (t *Topic) broadcastToSessions(msg *ServerComMessage) {
sharedPayloadReady = true
}
if sharedPayload != nil {
if sess.queueOutSharedBytes(sharedPayload) {
if msg.Data != nil {
queued, skipped := sess.queueOutLossySharedBytes(sharedPayload)
if skipped {
immetrics.IncTopicBroadcastDrop(kind, role, "ws_backpressure")
}
if queued {
continue
}
} else if sess.queueOutSharedBytes(sharedPayload) {
continue
}
immetrics.IncTopicSharedSerialization(kind, "full")