作者回复: 好问题!我来简化一下问题,考虑有一个公共服务A,支撑了业务服务B和C。B和C不一定会在某个时间点同时出现峰值,但是综合起来对于到达公共服务A的总压力来说,一定会有一个峰值点X,在这个峰值点X上B和C不一定是峰值,但它们对于A的累计压力值是最高的。于是,在X这个峰值点的业务场景就是你应该考虑的容量预估的基准场景。 当然,前提是B和C要保证能够承载各自的峰值压力。
作者回复: 精彩的回答!
作者回复: 开玩笑的说,其实这是一个习惯问题,因为代码总是有优化空间的,但是不想优化也总是有理由的,哈哈。 建立这一习惯的方法是通过流程建设,将代码优化的流程植入到容量风险的防治工作中去。例如,运维可以与各团队的架构师合作,列出一些性能优化的检查项(如连接池大小、缓存大Key/热Key、慢SQL检测等),在提交扩容申请时,先通过这些检查项证明代码已经得到优化,再去执行扩容操作。在第14讲的最后部分,我还提到了一种激励措施来避免无脑扩容,你可以参考应用。 当然,应急响应不在其列,如果要紧急止损,该扩容还是要先扩容。
作者回复: 理解的非常准确!
作者回复: 虽然是内部系统,但是如果工资没及时发出去也挺可怕的吧,哈哈。可以再想一想,针对这里的第三方接口限流,有没有流量整形和平滑限流的要求?