场景题提炼
1、系统运营安全与风险控制
一、问题定性
这是 「运营操作失误导致的线上资损事故」,属于系统安全性、风险管控与流程设计缺陷的综合性问题。核心矛盾在于:灵活的业务操作需求与 严格的资损防控要求 之间的平衡。
二、应对方法论:三层防御体系
| 层级 | 核心策略 | 方法论 |
|---|---|---|
| 1. 事前预防 | 系统强制约束 | 为所有高风险操作设置硬性边界(如折扣下限、预算上限),触碰则无法生效,从源头杜绝错误。 |
| 2. 事中干预 | 强化决策认知 | 对敏感操作实施强制确认(如弹窗、二次密码、多人复核),中断无意识操作,促使其理性决策。 |
| 3. 事后止损 | 自动熔断机制 | 设立实时监控与自动熔断机制,异常发生时系统自动拦截,将损失锁死在最小范围。 |
| 4. 灰度发布 | 小范围试错 |
三、核心思想
不依赖人的完美,而依赖系统的可靠。 通过产品与技术的硬约束,构建一个“即使误操作,也难以酿成大祸”的韧性系统。
2、让你设计一个 RPC 框架,怎么设计?
RPC就是本地的方法调用转移到其他服务或机器上的调用,把调用方法,调用参数,调用返回都转移到其他服务中。
其实就几点:
动态代理:屏蔽底层细节
序列化:网络数据传输需要扁平化的数据
RPC协议:协议的规定,数据的识别解析
网络传输
再这基础上,生产级别的框架可能还需要服务治理、路由分组、负载均衡、限流熔断、异常重试
3、扫描线思想
化动为静:将连续的动态过程,离散化为一系列关键事件点。
排序优化:通过对事件点排序,将问题简化为一趟有序的线性扫描。
状态维护:在扫描过程中,动态地维护一个当前状态(如计数器),并在状态变化时更新答案。
场景:
用户请求记录数据(id,开始时间、结束时间),统计哪个时间最大TPS(每秒并发数)、最大是多少
定义开始时间为
+1事件、结束时间为-1事件将所有
+1、-1按照时间排序,每个时间点上的事件相加得到这时间点的并发数遍历时间线,遍历时累加时间点的值,累加值是当前时间点的并发量。遍历结束可找到最大值、最大值时间点
日历日程冲突检测:找出所有日程中,预约会议最多的时间段。
- 和上一个例子类似
天空线问题(Skyline Problem):给定一系列建筑的(左坐标,高度,右坐标),画出城市的天际线。
左坐标、右坐标有x轴上点,这就是两个事件。画出天际线即x轴上每个点最高度的连线(同个点有多个建筑,取最大值作为该点的高度)
定义左坐标为
+高度、右坐标为-高度事件,将事件按照X轴排序遍历x轴坐标时间,遍历时使用最大堆累存每个x轴点的高度,
+高度时添加到堆,-高度时从堆移除,最大堆的最大值即为当前x轴点的最大高度
数轴区间覆盖:计算总共有多少长度的数轴被区间覆盖过。
矩形面积并:计算多个矩形在平面上覆盖的总面积。