主要是从k8s的角度来说。如果是云服务器,解决业务突然上涨导致系统崩溃的问题,本质就是让系统“自己会加机器、加服务”。我们一般基于 K8s 做弹性伸缩:平时业务量小,就运行几个容器节省资源;当访问量突然增加,K8s 通过监控发现 CPU、内存、接口请求量变高,就自动增加服务实例数量,让更多容器一起处理请求。如果发现服务器本身不够用,再通过云厂商提供的弹性能力自动增加云主机,把新机器加入 K8s 集群,形成“业务涨 → 自动加服务 → 不够再加机器”的过程,业务高峰过去后再自动缩容,把资源释放掉。
如果是自建服务器,思路也是一样,只是机器不是云厂商提供,而是自己的服务器资源。提前准备好 K8s 集群和资源池,当业务压力增加时,K8s 自动调度更多服务实例,同时通过监控系统发现资源不足,扩充节点或者把备用服务器加入集群。除此之外,还要配合限流、缓存、消息队列等手段,避免流量一下子冲垮核心服务。最终目标就是让系统具备“平时省资源,高峰自动扩,异常有保护”的能力,不依赖人工临时加机器来救火。