feat(worker): 实现集群限流与自适应负载
保留平台模型 RPM、TPM 和并发策略语义,增加 PostgreSQL 集群级租约、饱和候选重选和多平台自动负载,避免突发任务固定等待首个平台。\n\n新增 Worker 实时负载采样、自适应 active/heavy 容量、心跳与管理端指标,并扩展本地 acceptance runner,覆盖三 Worker、同模型三平台 2/4/6 并发和 48 个带图视频突发任务。\n\n验证:go test ./...、go vet ./...、PostgreSQL 跨 Store 集成测试、gofmt、bash -n、ShellCheck 及本地集群 provider-burst 验收通过;48/48 成功,无越限、重复提交、重复计费、重复回调或终态资源泄漏。
This commit is contained in:
@@ -0,0 +1,44 @@
|
||||
ALTER TABLE gateway_worker_instances
|
||||
ADD COLUMN hard_capacity_limit integer NOT NULL DEFAULT 0,
|
||||
ADD COLUMN safe_capacity integer NOT NULL DEFAULT 0,
|
||||
ADD COLUMN heavy_capacity integer NOT NULL DEFAULT 0,
|
||||
ADD COLUMN active_tasks integer NOT NULL DEFAULT 0,
|
||||
ADD COLUMN preparing_tasks integer NOT NULL DEFAULT 0,
|
||||
ADD COLUMN waiting_upstream_tasks integer NOT NULL DEFAULT 0,
|
||||
ADD COLUMN finalizing_tasks integer NOT NULL DEFAULT 0,
|
||||
ADD COLUMN pressure_state text NOT NULL DEFAULT 'unknown',
|
||||
ADD COLUMN pressure_reason text NOT NULL DEFAULT '',
|
||||
ADD COLUMN load_sampled_at timestamptz,
|
||||
ADD CONSTRAINT gateway_worker_instances_adaptive_capacity_check
|
||||
CHECK (
|
||||
hard_capacity_limit >= 0
|
||||
AND safe_capacity >= 0
|
||||
AND heavy_capacity >= 0
|
||||
AND active_tasks >= 0
|
||||
AND preparing_tasks >= 0
|
||||
AND waiting_upstream_tasks >= 0
|
||||
AND finalizing_tasks >= 0
|
||||
AND active_tasks = preparing_tasks + waiting_upstream_tasks + finalizing_tasks
|
||||
) NOT VALID,
|
||||
ADD CONSTRAINT gateway_worker_instances_pressure_state_check
|
||||
CHECK (pressure_state IN ('unknown', 'normal', 'busy', 'critical')) NOT VALID;
|
||||
|
||||
ALTER TABLE gateway_concurrency_leases
|
||||
ADD COLUMN limit_value numeric,
|
||||
ADD CONSTRAINT gateway_concurrency_leases_limit_value_check
|
||||
CHECK (limit_value IS NULL OR limit_value > 0) NOT VALID;
|
||||
|
||||
UPDATE gateway_worker_instances
|
||||
SET hard_capacity_limit = capacity_limit,
|
||||
safe_capacity = capacity_limit,
|
||||
heavy_capacity = capacity_limit
|
||||
WHERE hard_capacity_limit = 0;
|
||||
|
||||
ALTER TABLE gateway_worker_instances
|
||||
VALIDATE CONSTRAINT gateway_worker_instances_adaptive_capacity_check;
|
||||
|
||||
ALTER TABLE gateway_worker_instances
|
||||
VALIDATE CONSTRAINT gateway_worker_instances_pressure_state_check;
|
||||
|
||||
ALTER TABLE gateway_concurrency_leases
|
||||
VALIDATE CONSTRAINT gateway_concurrency_leases_limit_value_check;
|
||||
Reference in New Issue
Block a user