主题
系统设计
这些题与问题库里的是同一批,这里按各自主要考察的能力分组。
88 道问题
本页为第 51–88 题,共 88 题。
A · 专业解题与实现30
- 管理后台需要保留不可随意修改的操作记录,既支持按操作者和对象查询,也要应对数据量逐年增长。你会怎样设计写入、索引和保留策略?
- 管理后台按创建时间翻页时,新增和删除会让用户看到重复或漏项。你会比较 offset 与游标分页,并定义何种一致性预期?
- 一个 API 部署在多个实例后,单机请求限制使总额度随实例数增加。你会根据突发容忍度、精度和故障策略设计请求速率限制,并说明状态放在哪里?
- 设计一个供多个业务团队提交“在某个时间之后执行”的任务服务,任务可能被取消、改期或重复提交。你会怎样划分数据模型和执行组件?
- 多个服务在请求路径中读取功能开关和分群规则。如何设计控制面与本地求值,让控制服务故障时线上行为仍然可预期?
- 一个高流量服务需要把关键表从旧结构迁移到新模型,期间不能暂停读写。你会怎样组织迁移阶段并验证切换安全?
- 一个多人协作工具需要展示成员在线状态和正在编辑的位置;短暂延迟可以接受,但离线成员不能长期显示为在线。你会怎样设计状态更新和过期机制?
- 产品要向数千万用户发送事务通知和可选营销通知,用户可以随时调整渠道偏好。你会如何设计通知发送流程?
- 一个全球服务需要按地区启用不同功能和数据保留规则,同时总部仍要观察整体运行情况。你会怎样划分配置、执行和汇总边界?
- 一个搜索服务需要调整分词和排序特征,同时不能让重建过程造成长时间结果缺失或明显增加写入延迟。你会怎样安排索引演进?
- 一个订阅产品有试用、续费、宽限期、退款和家庭共享。如何设计权益判定,使多个业务服务读取到一致且可追溯的结果?
- 一个按用量计费的 API 产品需要把不同地区的请求事件汇总成客户账单,并允许事后纠错。你会如何设计计量数据处理流程?
- 一个多租户平台要向客户系统发送事件通知(Webhook)。你会如何设计发送和重试流程,并处理客户端长期不可用的情况?
- 多个客户共享异步作业平台,有的租户会提交大量长任务。你会怎样设计调度、隔离、配额,以及用日志、指标和调用记录了解队列运行情况?
- 某些对象成为热点,读取延迟恶化而写入又必须保持顺序。你会怎样划分缓存、分区和写入协调策略?
- 业务要求追溯每次状态变化,并在必要时安全地重新处理历史消息;但部分旧事件格式不完整。你会怎样设计事件版本、保留期限和重新处理范围?
- 跨区域服务需要在区域故障时维持关键功能,但部分数据不能接受冲突覆盖。你会怎样选择故障期间保留哪些功能、如何复制数据,以及如何恢复?
- 实时协作服务有大量长连接,慢客户端会积压更新。你会如何选择丢弃、合并、限制慢客户端接收和重新同步策略?
- 创建、编辑和审核由不同团队负责,表单反馈逐渐不一致。你会如何决定哪些模式统一、哪些保留差异?怎样检查加载、空白、错误和恢复状态?
- 一个入口服务同时调用多个下游,其中一个非核心依赖偶尔变慢,导致请求线程耗尽并拖累其他功能。你会如何设计超时、并发隔离、必要时关闭非核心功能和恢复策略?
- 移动端上传大文件时网络可能中断,用户会重复点击重试;系统还按成功处理量计费。你会如何设计分片、校验、续传状态、最终提交和计费时点?
- 一次业务规则修正要求重算多个服务产生的历史记录,但部分消费者已经发送通知或执行外部动作。你会如何列出影响范围,决定哪些历史数据需要重新处理,并防止重复触发外部操作?
- 某依赖服务变慢后,多个调用方同时增加重试,流量反而翻倍并使故障范围扩大。你会如何设计重试预算、退避、抖动和跨服务协调?
- 线上索引需要改变分片键,数据量增长很快且写入不能停止。你会如何规划新旧索引并判断何时切换?
- 多租户查询平台使用共享数据库连接池,某个租户提交大量复杂报表后,其他租户请求延迟明显增加。你会如何隔离和计量?
- 某管理接口能批量改变客户状态,原本只供人工使用,后来被自动化脚本直接调用并造成大范围变更。你会如何重新设计权限和操作保护?
- 用户启动大型数据导出后断开连接,期间其访问权限又被收回。任务需要能续传,但不能继续泄露已无权访问的数据。你会如何设计?
- 产品信息同时存在于应用缓存、CDN 和客户端缓存,价格更新后不同用户看到不同值。你会怎样定义刷新、版本和失效语义?
- 实时仪表盘使用事件时间窗口,财务日报按结算时间汇总并排除未结账交易。负责人认为其中一个报表一定错了。你会怎样解释并治理?
- 每个读请求都写审计日志,成本迅速增加;合规团队又要求保留敏感操作证据。你会如何设计采集和保留分层?
当前目标在这里暂无匹配题。 ·
B · 业务理解与领域建模1
当前目标在这里暂无匹配题。 ·
C · 价值判断与方向规划4
D · 交付执行与持续运营1
当前目标在这里暂无匹配题。 ·