perf(worker): 解耦准入调度与远端执行
原因:线上 P24 同构验收确认两台香港 Worker 的全局容量为 48,但跨地域逐行准入事务每轮只能形成 8 个活跃租约,队列最老等待超过 15 分钟。\n\n影响:新增可配置的异步准入 dispatcher 角色;生产两地 API 负责准入和过期回收,Worker 仅执行 River job。当前主库同站点 API 可低延迟填满容量,主库切换后另一地 API 通过既有数据库锁安全接管;未配置环境变量时保持原 Worker 一体化行为。\n\n验证:Go 全量测试、go vet、gofmt、真实 PostgreSQL 1000 任务双进程回归、前端 lint/test/build、Kubernetes server-side dry-run、Compose、ShellCheck、cluster/manual release tests 全部通过。
This commit is contained in:
@@ -403,6 +403,7 @@ rollout_worker_site() {
|
||||
"AI_GATEWAY_ASYNC_WORKER_HARD_LIMIT=$AI_GATEWAY_ASYNC_WORKER_HARD_LIMIT" \
|
||||
"AI_GATEWAY_ASYNC_WORKER_GLOBAL_HARD_LIMIT=$AI_GATEWAY_ASYNC_WORKER_GLOBAL_HARD_LIMIT" \
|
||||
"AI_GATEWAY_ASYNC_ADMISSION_MICROBATCH_SIZE=$AI_GATEWAY_ASYNC_ADMISSION_MICROBATCH_SIZE" \
|
||||
"AI_GATEWAY_ASYNC_ADMISSION_DISPATCHER_ENABLED=false" \
|
||||
"AI_GATEWAY_DATABASE_MAX_CONNS=$AI_GATEWAY_DATABASE_MAX_CONNS" \
|
||||
"AI_GATEWAY_DATABASE_CRITICAL_MAX_CONNS=$AI_GATEWAY_DATABASE_CRITICAL_MAX_CONNS" \
|
||||
"AI_GATEWAY_DATABASE_RIVER_MAX_CONNS=$AI_GATEWAY_DATABASE_RIVER_MAX_CONNS" \
|
||||
@@ -433,6 +434,8 @@ rollout_worker_site() {
|
||||
-n "$NAMESPACE" --timeout=300s || return 1
|
||||
[[ $("${kubectl[@]}" get deployment "easyai-worker-$site" -n "$NAMESPACE" \
|
||||
-o jsonpath='{.spec.template.spec.containers[?(@.name=="worker")].env[?(@.name=="AI_GATEWAY_PROCESS_ROLE")].value}') == worker ]] || return 1
|
||||
[[ $("${kubectl[@]}" get deployment "easyai-worker-$site" -n "$NAMESPACE" \
|
||||
-o jsonpath='{.spec.template.spec.containers[?(@.name=="worker")].env[?(@.name=="AI_GATEWAY_ASYNC_ADMISSION_DISPATCHER_ENABLED")].value}') == false ]] || return 1
|
||||
ready_replicas=$("${kubectl[@]}" get deployment "easyai-worker-$site" -n "$NAMESPACE" \
|
||||
-o json | jq -r '.status.readyReplicas // 0') || return 1
|
||||
[[ $ready_replicas == "$replicas" ]] || return 1
|
||||
@@ -592,6 +595,7 @@ rollout_api_capacity_site() {
|
||||
"${kubectl[@]}" set env "deployment/easyai-api-$site" -n "$NAMESPACE" \
|
||||
"AI_GATEWAY_ASYNC_WORKER_HARD_LIMIT=$AI_GATEWAY_ASYNC_WORKER_HARD_LIMIT" \
|
||||
"AI_GATEWAY_ASYNC_WORKER_GLOBAL_HARD_LIMIT=$AI_GATEWAY_ASYNC_WORKER_GLOBAL_HARD_LIMIT" \
|
||||
"AI_GATEWAY_ASYNC_ADMISSION_DISPATCHER_ENABLED=true" \
|
||||
"AI_GATEWAY_DATABASE_MAX_CONNS=$AI_GATEWAY_API_DATABASE_MAX_CONNS" \
|
||||
"AI_GATEWAY_DATABASE_CRITICAL_MAX_CONNS=$AI_GATEWAY_DATABASE_CRITICAL_MAX_CONNS" \
|
||||
"AI_GATEWAY_DATABASE_RIVER_MAX_CONNS=$AI_GATEWAY_API_DATABASE_RIVER_MAX_CONNS" \
|
||||
@@ -637,6 +641,7 @@ rollout_site() {
|
||||
"${kubectl[@]}" set env "deployment/easyai-api-$site" -n "$NAMESPACE" \
|
||||
"AI_GATEWAY_ASYNC_WORKER_HARD_LIMIT=$AI_GATEWAY_ASYNC_WORKER_HARD_LIMIT" \
|
||||
"AI_GATEWAY_ASYNC_WORKER_GLOBAL_HARD_LIMIT=$AI_GATEWAY_ASYNC_WORKER_GLOBAL_HARD_LIMIT" \
|
||||
"AI_GATEWAY_ASYNC_ADMISSION_DISPATCHER_ENABLED=true" \
|
||||
"AI_GATEWAY_DATABASE_MAX_CONNS=$AI_GATEWAY_API_DATABASE_MAX_CONNS" \
|
||||
"AI_GATEWAY_DATABASE_CRITICAL_MAX_CONNS=$AI_GATEWAY_DATABASE_CRITICAL_MAX_CONNS" \
|
||||
"AI_GATEWAY_DATABASE_RIVER_MAX_CONNS=$AI_GATEWAY_API_DATABASE_RIVER_MAX_CONNS" \
|
||||
|
||||
@@ -52,6 +52,8 @@ spec:
|
||||
value: api
|
||||
- name: AI_GATEWAY_ASYNC_QUEUE_WORKER_ENABLED
|
||||
value: "false"
|
||||
- name: AI_GATEWAY_ASYNC_ADMISSION_DISPATCHER_ENABLED
|
||||
value: "true"
|
||||
- name: AI_GATEWAY_DATABASE_MAX_CONNS
|
||||
value: "32"
|
||||
- name: AI_GATEWAY_DATABASE_CRITICAL_MAX_CONNS
|
||||
@@ -330,6 +332,8 @@ spec:
|
||||
value: api
|
||||
- name: AI_GATEWAY_ASYNC_QUEUE_WORKER_ENABLED
|
||||
value: "false"
|
||||
- name: AI_GATEWAY_ASYNC_ADMISSION_DISPATCHER_ENABLED
|
||||
value: "true"
|
||||
- name: AI_GATEWAY_DATABASE_MAX_CONNS
|
||||
value: "32"
|
||||
- name: AI_GATEWAY_DATABASE_CRITICAL_MAX_CONNS
|
||||
@@ -501,6 +505,8 @@ spec:
|
||||
value: worker
|
||||
- name: AI_GATEWAY_ASYNC_QUEUE_WORKER_ENABLED
|
||||
value: "true"
|
||||
- name: AI_GATEWAY_ASYNC_ADMISSION_DISPATCHER_ENABLED
|
||||
value: "false"
|
||||
- name: AI_GATEWAY_DATABASE_MAX_CONNS
|
||||
value: "32"
|
||||
- name: AI_GATEWAY_DATABASE_CRITICAL_MAX_CONNS
|
||||
@@ -676,6 +682,8 @@ spec:
|
||||
value: worker
|
||||
- name: AI_GATEWAY_ASYNC_QUEUE_WORKER_ENABLED
|
||||
value: "true"
|
||||
- name: AI_GATEWAY_ASYNC_ADMISSION_DISPATCHER_ENABLED
|
||||
value: "false"
|
||||
- name: AI_GATEWAY_DATABASE_MAX_CONNS
|
||||
value: "32"
|
||||
- name: AI_GATEWAY_DATABASE_CRITICAL_MAX_CONNS
|
||||
|
||||
Reference in New Issue
Block a user