fix(notify): 根治低带宽控制面阻塞与传输写入卡死
- 为控制消息增加优先级、公平调度、队列字节预算和自适应批处理 - 支持可取消的写门等待,收紧 shared/dedicated bulk、stream 和 Reply 写入边界 - 修复 bulk reset/close、连接 handoff 和安全 profile 切换时序 - 保留旧取消与超时错误契约,新增阶段化 TransportSendError - 增加 ReplyCtx、ReplyObjCtx、写超时配置及黑洞连接和竞态回归测试
This commit is contained in:
@@ -22,6 +22,7 @@ type ServerCommon struct {
|
||||
stopCtx context.Context
|
||||
maxReadTimeout time.Duration
|
||||
maxWriteTimeout time.Duration
|
||||
replyWriteTimeout atomic.Int64
|
||||
parallelNum int
|
||||
wg stario.WaitGroup
|
||||
peerRegistry *serverPeerRegistry
|
||||
@@ -47,6 +48,7 @@ type ServerCommon struct {
|
||||
peerAttachAuthRejectCount atomic.Int64
|
||||
peerAttachDowngradeRejectCount atomic.Int64
|
||||
peerAttachBindingRejectCount atomic.Int64
|
||||
linkMu sync.RWMutex
|
||||
linkFns map[string]func(message *Message)
|
||||
defaultFns func(message *Message)
|
||||
noFinSyncMsgMaxKeepSeconds int64
|
||||
@@ -62,6 +64,8 @@ type ServerCommon struct {
|
||||
recordRuntime *recordRuntime
|
||||
bulkRuntime *bulkRuntime
|
||||
bulkOpenTuning BulkOpenTuning
|
||||
udpWriteGateOnce sync.Once
|
||||
udpWriteGate chan struct{}
|
||||
bulkDedicatedSidecarMu sync.Mutex
|
||||
bulkDedicatedSidecars map[*LogicalConn]map[uint32]*bulkDedicatedSidecar
|
||||
connectionRetryState *connectionRetryState
|
||||
@@ -78,6 +82,7 @@ func NewServer() Server {
|
||||
server.parallelNum = 0
|
||||
server.noFinSyncMsgMaxKeepSeconds = 0
|
||||
server.maxHeartbeatLostSeconds = 300
|
||||
server.replyWriteTimeout.Store(int64(defaultMessageReplyWriteTimeout))
|
||||
server.stopCtx, server.stopFn = context.WithCancel(context.Background())
|
||||
server.SecretKey = nil
|
||||
server.handshakeRsaKey = defaultRsaKey
|
||||
|
||||
Reference in New Issue
Block a user