你好,我是唐扬,新年快乐!
过年嘛,都要吃好玩好,给自己一年的辛苦付出“加餐”,那咱们的课程也不例外,在新的一年里,我为你策划了两期加餐,今天先来聊聊在高并发下,我们如何发现和排查问题。
为什么要讲这个问题呢?是因为我在课程结束之后,发现有同学反馈说:
虽然课程里几乎涵盖了高并发系统设计的全部方面(比如数据库、缓存和队列的使用、分布式系统主要组件的原理,以及系统运维方面需要关注的重点),但自己按照课程中提供的方式正确使用了组件,在实际工作中仍然会发现系统中各种各样的问题,比如服务性能衰减、依赖资源的抖动甚至是服务整体故障。
尤其在高并发环境下,由于并发请求更多,对于资源和服务的压力更大,所以原本隐藏在冰山下的问题又都会在某一时间突然浮出水面。
这其实就像墨菲定律说的那样: 如果事情有变坏的可能,不管这种可能性有多小,它总会发生。这不是一个数据概率问题,也不是一个心理学效应,而是一种必然的法则。
在高并发场景下,一些细微的问题可能会迅速恶化,并且对系统中多个模块的 SLA 带来巨大的影响。比如,业务仅仅缓存的平均响应时间增加 1ms 或者缓存命中率下降 1 个百分点,都会带来灾难性的影响。这不仅增加了问题排查的难度,也对问题排查的及时性提出了更高的要求。