场景题提炼

1、系统运营安全与风险控制

一、问题定性

这是 「运营操作失误导致的线上资损事故」,属于系统安全性、风险管控与流程设计缺陷的综合性问题。核心矛盾在于:灵活的业务操作需求严格的资损防控要求 之间的平衡。

二、应对方法论:三层防御体系

层级核心策略方法论
1. 事前预防系统强制约束为所有高风险操作设置硬性边界(如折扣下限、预算上限),触碰则无法生效,从源头杜绝错误。
2. 事中干预强化决策认知对敏感操作实施强制确认(如弹窗、二次密码、多人复核),中断无意识操作,促使其理性决策。
3. 事后止损自动熔断机制设立实时监控自动熔断机制,异常发生时系统自动拦截,将损失锁死在最小范围。
4. 灰度发布小范围试错

三、核心思想

不依赖人的完美,而依赖系统的可靠。 通过产品与技术的硬约束,构建一个“即使误操作,也难以酿成大祸”的韧性系统。


2、让你设计一个 RPC 框架,怎么设计?

RPC就是本地的方法调用转移到其他服务或机器上的调用,把调用方法,调用参数,调用返回都转移到其他服务中。

其实就几点:

  • 动态代理:屏蔽底层细节

  • 序列化:网络数据传输需要扁平化的数据

  • RPC协议:协议的规定,数据的识别解析

  • 网络传输

再这基础上,生产级别的框架可能还需要服务治理路由分组负载均衡限流熔断异常重试

3、扫描线思想

  1. 化动为静:将连续的动态过程,离散化为一系列关键事件点

  2. 排序优化:通过对事件点排序,将问题简化为一趟有序的线性扫描

  3. 状态维护:在扫描过程中,动态地维护一个当前状态(如计数器),并在状态变化时更新答案。

场景:

  • 用户请求记录数据(id,开始时间、结束时间),统计哪个时间最大TPS(每秒并发数)、最大是多少

    • 定义开始时间为+1事件、结束时间为-1事件

    • 将所有+1-1按照时间排序,每个时间点上的事件相加得到这时间点的并发数

    • 遍历时间线,遍历时累加时间点的值,累加值是当前时间点的并发量。遍历结束可找到最大值、最大值时间点

  • 日历日程冲突检测:找出所有日程中,预约会议最多的时间段。

    • 和上一个例子类似
  • 天空线问题(Skyline Problem):给定一系列建筑的(左坐标,高度,右坐标),画出城市的天际线。

    • 左坐标、右坐标有x轴上点,这就是两个事件。画出天际线即x轴上每个点最高度的连线(同个点有多个建筑,取最大值作为该点的高度)

    • 定义左坐标为+高度、右坐标为-高度事件,将事件按照X轴排序

    • 遍历x轴坐标时间,遍历时使用最大堆累存每个x轴点的高度,+高度时添加到堆,-高度时从堆移除,最大堆的最大值即为当前x轴点的最大高度

  • 数轴区间覆盖:计算总共有多少长度的数轴被区间覆盖过。

  • 矩形面积并:计算多个矩形在平面上覆盖的总面积。

4、让你设计一个消息队列,怎么设计?