logo

如何扩展 Scheduling Service?为什么要按 next_run_time 分区/索引?当某一分钟有 50,000 个任务时会发生什么?

How do you scale the Scheduling Service? Why partition/index by next_run_time, and what happens if 50,000 jobs are due in one minute?

题目类型: 技术面试题

这是一道技术面试题,常见于澳洲IT公司面试中。

难度: medium

分类: System Design

标签: scheduler-scaling, partitioning, hot-minute

参考答案摘要

答案 Scheduling Service 的瓶颈通常在“每分钟扫描到期任务并入队”。按 next_run_time 分区/索引能让查询变成“定位到某一分钟的分区/索引段”,避免全表扫描。 如果某一分钟有 50,000 个任务,而调度只有单节点:查询+入队会拉长,导致任务启动延迟;同时单点故障会让这一分钟的任务全部卡住。解决思路是并行调度:把扫描与入队拆到多个调度 worker 上,并通过分段/锁...

本题提供 STAR 原则详细解答和技术解析,登录匠人学院学习中心即可查看完整答案。

← 返回面试题库

如何扩展 Scheduling Service?为什么要按 next_run_time 分区/索引?当某一分钟有 50,000 个任务时会发生什么?

Mediumsystem-designdistributed-systemsjob-schedulerqueuekafkarabbitmqdynamodbcassandraleader-electionraftetcdzookeeperretryrate-limitingcheckpointing

想查看完整答案?

登录匠人学院学习中心,获取 STAR 格式回答和详细技术解析

前往学习中心查看答案