|
阿里云的阿里负载均衡SLB,说白了就是云负一台“流量调度员”。你开个网站,载均用户一多,阿里一台服务器扛不住,云负它就帮你把请求分给后面一排服务器。载均但这玩意儿远不止“分发”这么简单,阿里我见过太多人把它当个DNS轮询用,云负浪费了。载均 去年我帮一个做在线教育的阿里客户排查故障,他们半夜搞促销,云负流量冲上来,载均结果后端三台服务器直接打满。阿里SLB配了,云负健康检查也开了,载均但就是没扛住。后来一看,问题出在会话保持上——用户请求被随机甩到不同机器,每台机器都得重新算一遍登录态,CPU全耗在重复劳动上。把SLB的会话保持改成基于Cookie的“源IP哈希”后,同一用户固定打同一台机器,CPU使用率直接降了40%。这事让我明白,SLB不是个简单的“分流器”,它的配置策略直接决定后端资源利用率。 再往深了说,SLB的“四层”和“七层”区别,很多人压根没搞清。四层走的是IP+端口,转发效率高,适合长连接、游戏服务器这类场景;七层能解析HTTP头,可以做域名路由、URL重写,甚至根据浏览器类型分流。我做电商的朋友,把图片请求直接打到七层SLB,按路径规则转发到独立的图片服务器集群,主站后端压力瞬间小了一半。这玩意儿用好了,能省下一整台高配服务器的钱。 但有个坑必须提——SLB的“性能上限”不是无限叠加的。它的规格分“共享型”和“性能保障型”,共享型看着便宜,但邻居流量一冲,你的延迟就跟着抖。我之前帮客户压测,共享型实例在并发5000时延迟还在5ms内,到8000直接飙到80ms,跟过山车似的。后来换了性能保障型,加了QPS限制,才稳下来。选型时别看广告宣传的“百万并发”,要看自己业务的实际峰值和延迟容忍度。 还有一点,很多人忽略SLB的“后端权重”配置。默认大家平分流量,但如果你有一台新上线的服务器,配置好、性能强,完全可以给个3倍权重,让它多扛点活。反过来,老机器快退役了,权重调低,慢慢摘流量。这种细粒度控制,比直接扩缩容要平滑得多。我见过运维团队天天手动改权重,其实SLB的API支持自动调节,配合监控数据,高峰期前半小时把权重动态调上去,低谷期再降下来,全程不用人盯。 最后说个反直觉的事——SLB并非总得放在最前面。有些高安全要求的业务,会在SLB后面再挂一层Nginx,做细粒度的WAF规则过滤。SLB负责扛大流量清洗,Nginx负责业务逻辑层的拦截。两层配合,比单靠SLB的“DDoS原生防护”要灵活。但代价就是多一层转发延迟,大概0.1ms到0.3ms,对大部分业务来说感知不到。别迷信“越简单越好”,有时候多一层设计,反而让系统更皮实。 阿里云SLB真正厉害的地方,不是它有多少功能,而是它能跟云生态无缝咬合。比如配合弹性伸缩,SLB自动感知后端实例的健康状态,扩容时新机器一注册就能接流量,缩容时先摘流量再释放,整个过程业务无感。这种“自动档”体验,自建Nginx集群很难做到。但反过来说,如果你只是个小博客,一天几百个访问,那SLB纯属浪费钱,一台单机加个缓存就绰绰有余了。工具这东西,用对场景才值钱。 |