简单题,在校招和社招中都有可能遇到,一般作为深入讨论超时机制的起始问题。
在这个问题之下,你可以引用一个缺乏超时控制引发的线上故障问题。一方面是引导问题,另外一方面也是刷出亮点。
简单题,在校招和社招中都有可能遇到。
类似地,在这个问题之下,你需要准备一些超时控制的案例,最好是负面案例,从而强调超时控制的作用以及在缺乏超时控制的时候可能遇到的问题。
回答这个问题,还是要考虑使用一个案例来证明超时控制的作用。最好是选择一些比较有特色的案例,比如说跟性能优化、问题排查有关的案例,这样在面试中凸显自己性能优化和问题排查的能力。
在这个问题之下,你需要考虑的就是使用一些案例,证明自己有丰富的实践经验。
简单题。
一般来说,在实践至少需要设置客户端超时,这也是大多数微服务框架、各种客户端支持的做法。
服务端超时控制在实践中也算常用,你要刷亮点就可以讨论为什么大多数的框架都不仅仅是支持服务端超时控制,因为服务端超时控制并不怎么靠谱,客户端有可能收不到服务端返回的超时响应。
因此,服务端超时控制一般也要结合客户端超时来使用。
简单题,一般校招不太会问,在社招会遇到。
回答这个问题,还是要深入讨论服务端超时控制的一个极大的弊端:客户端可能收不到服务端的超时响应。这也就导致对于一个框架来说,客户端超时控制是必不可少的。
略难的题,难在一般人学习微服务的时候可能只会接触到超时控制,而没有深入研究一般的超时控制和链路超时控制的区别。
在这个问题之下,你可以讲清楚超时控制的基本原理,而后在这个过程中引出有关于链路超时控制的超时时间设置、超时时间传递等问题,引导话题并且刷出亮点。
略难的题,当然如果你要是知道什么是链路超时控制,这个题目就是一个简单题。
在这个问题之下你可以根据单机超时控制的弊端来引申出为什么我们会需要链路超时控制,以及链路超时控制在提升用户体验方面的巨大作用。
略难的题。
其实链路可以看做是一个个客户端-服务端调用组成的。所以链路超时控制就是要协调这些客户端和服务端,一方面控制住自己代码执行的时间,一方面是控制住发起调用的时间。
略难的题,这个题其实考察的是框架的设计原理,包括 RPC 协议之类的设计原理。
在实践中,单一框架内传递链路超时时间还是很容易的,比如说都是 gRPC 调用,或者都是 Dubbo 调用,这种就很简单。但是如果涉及了跨框架链路超时时间传递,一般都要自己手搓。因此你可以考虑自己实践一下怎么在不同的框架中传递超时时间,而后假装自己在公司里面提供了通用的链路超时控制解决方案,从而刷亮点并且赢得竞争优势。
简单题,一般只会出现在社招,只有非常深入讨论超时机制,以及超时机制怎么实现的情况下,才会问到这种问题。
其实这个问题主打措手不及,因为一旦你搞清楚了链路超时控制是如何传递超时时间的,就知道如何检测了。而后你可以深入讨论超时控制说到底是重度依赖时钟中断的。
简单题,一般在社招里面会问到。
这个问题其实很好装逼,因为你可以进一步结合熔断、限流、降级、同步转异步这一类的容错措施来回答,体现你对服务治理的深刻理解。而后,如果你能举出实践中的例子,就可以进一步装逼了。
简单题,不过这个题目一般人都很难回答好。道理很简单,因为很多人在设置超时时间的时候,并不会仔细思考,而是随便设置一个。
在这个问题之下,你可以讨论一个很有意思的点:就是以用户体验为中心设置的超时时间,可能在技术上难以达到,该怎么办。在实践中,一般都是要先考虑优化性能,只有在优化都搞完了也没办法的情况下,才会进一步考虑提高超时时间。
简单题,在校招或者社招都有可能遇到。
在这个问题之下,你可以讨论因为超时-重试-加重超时这个现象来刷亮点,把它做成自己的一个问题排查案例。
在这个问题之下你也同样可以使用因为超时时间过长引发的线上故障案例,凸显你丰富的实战经验和问题排查能力。
这个问题简单回答就是链路超时控制和单机超时控制,而后进一步结合自己的实践案例来刷亮点。
简单题。这个问题等同于如何处理超时请求,一般出现在社招中。
简单题,一般出现在社招。
这种有什么影响的题目,虽然明面上可以是正面影响,但是实践中一般强调的是负面影响,所以你回答的重点应该是负面影响和对应的解决方案上。
并且在这个问题之下,你同样可以使用因为超时机制使用不当引发线上故障的案例,来佐证对系统的影响。
这种遇到过什么问题,如何解决的题目,基本上都是送分题,前提是你准备了相应的案例。在这个问题之下,最好的装逼方式就是通过用户体验强制超时时间应该很短,而后你被逼着优化性能。
很显然,如果你用这种话术,面试官肯定会追着问你怎么优化性能的。
略难的题,主要还是在于很多时候你接入了超时控制之后,你会很少关注超时控制的效果好不好。
在这个问题之下,你可以考虑使用自己的实践案例来说明如何评估超时控制策略的有效性。有一个比较好的引导点就是讨论自己执行过性能测试或者压力测试,并且进一步总结自己观察到的性能测试下出现的情况,如果你平时没这部分实践,那么你可以直接使用我的答案。
略难的题,一般只会出现在社招,而且是深入讨论到了灵活设置不同超时策略的时候才会问到。
大部分面试官没那个水平问出这个问题,毕竟他们也就是随便设置一下。只有在一些对性能、可用性要求很高的场景下才会要求灵活、动态地设置超时时间,或者说有针对性地设计超时控制策略。
略难的题,一般出现在社招中。
在这个问题之下,可以稍微讨论一下在链路超时之后要不要回滚业务的问题,并且进一步提及,如果要回滚业务,那么就要小心分布式事务内部回滚的问题,尤其是回滚失败的问题。
简单题