稳定性问答专区
-
Q:在service(Integer id)方法中,我们如何减少锁竞争,避免死锁?
京东物流-技术专家: 可以将delete和insert操作合并为一个事务,并使用SELECT … FOR UPDATE来锁定将要删除的行。如果id不存在,这个查询将不会…
-
Q:假设在执行service(Integer id)方法时,出现了数据库操作的死锁,我们如何确定是哪个步骤导致了死锁?
京东物流-技术专家: 通过审查该方法的业务逻辑,应首先检查delete(id)和insert(id)操作。如果id在数据库中不存在,delete操作实际上不会修改任何行,但会留下间…
-
Q: 接口偶发性超时,调用链只能看到超时接口名称,看不到内部方法,无法定位根因,也难以复现,怎么办?
去哪儿网-某技术专家: 在进行根因分析时,我们首先需要界定什么是根因。比如当接口超时,可能是代码存在bug,也可能是其他原因,如依赖项导致接口调用超标或自身性能问题。为了确定这些问…
-
Q: 我最近在研究菜鸟网络的单笔高可用性。比如,一个包裹在出库后,出库消息回传失败,导致系统状态不一致。这种情况你们是怎么处理的?
菜鸟-某高级技术专家: 你好,这个问题我们确实遇到过。我们通过实时核对监控系统来处理这种情况。具体来说,我们实时采集数据库的binlog,通过业务单号关联配送系统和仓储系统的单据状…
-
Q: 老师好,接口偶发性超时,调用链只能看到超时接口名称,看不到内部方法,无法定位根因,也难以复现,怎么办?
滴滴出行-某可观测架构负责人: 你可以尝试使用EBF进行持续采集。这个过程属于排障阶段。如果使用metrics采集,因为其抽象程度较高,可能在整个过程中不会有太大帮助,所以可以尝试…
-
Q: 我想高效地采集业务场景的依赖信息?老师有什么建议?
B站-某技术专家: B站通过故障演练SDK在调用依赖时进行依赖信息的上报,实现了依赖采集的自动化。依赖采集配置会根据匹配情况注入到上下文ctx中,并传递到各个基础组件。如果满足采集…
-
Q:我们公司打算落地混沌工程,老师觉得大概需要几个阶段呢?不同阶段持续时间、以及投入人员情况可以大概说一下吗?
去哪儿网-高级技术总监: 简单分享一下我们的落地经验。企业混沌工程去落地的时候,在系统上确实需要有一些有效的基础设施作为支撑。 第一个阶段是基础设施演练,是我们最开始构建混沌工程平…
-
Q: 在线上环境进行故障演练时,怎么有效控制故障影响的范围?
B站-某技术专家: B站是通过多种方式控制故障的爆炸半径。首先,支持实例粒度控制,Fault-Service只向特定实例推送实验。其次,请求粒度控制,拦截器根据请求信息(如Pat…
-
Q: 在微服务架构中,如果某个服务节点出现故障或响应延迟,怎么通过重试策略来处理这些异常流量?
B站-某技术总监: B站的重试策略包括限制重试次数、使用随机化和指数型递增的退避周期,以及设定重试速率指标。例如,如果一个服务调用失败,系统会根据Exponential Backo…
-
Q:面对S赛、拜年纪、跨年晚会等大型活动,怎么确保容量管理能够应对突发的流量增长?
B站-某SRE负责人: B站通过提高HPA的覆盖率和实施容量预估策略来保障业务稳定性。例如,在S12赛事中,通过参考历史数据计算增量系数,预估新增场景的容量需求,并结合额外的buf…