返回列表

华为云消费抵扣券 华为云负载均衡实测

华为云国际 / 2026-04-17 15:26:52

各位好,我是那个上次把Nginx配置写错导致全站502、蹲在机房啃冷包子的运维老张。今天不聊玄学,不画架构图,就拿华为云的弹性负载均衡(ELB)——不是官网PPT里的ELB,是我在生产环境真刀真枪怼了三周、跑崩过两次、重启过四回、被告警短信吵醒过五次的那个ELB——来唠点实在的。

先说结论:它不完美,但够用;不惊艳,但靠谱;没吹得那么神,也没糟得那么惨。就像你家楼下那家开了十年的修车铺老板——手艺稳,话不多,修完车还顺手帮你紧两颗螺丝。

一、我们到底在测什么?

别一上来就甩QPS、TPS、RT这些字母组合。咱们测的是:凌晨三点服务器挂了,ELB能不能3秒内切走流量?新上线的服务没加健康检查,ELB会不会傻乎乎地把请求往死里打?证书更新时SSL握手会不会卡顿半秒?后端节点突然CPU飙到99%,ELB会不会跟着一起抖?

所以这次实测分三块:HTTP模式(带重写+Header透传)、HTTPS模式(含双向认证+OCSP Stapling)、TCP模式(纯四层透传,专治那些连HTTP都懒得认的祖传Java服务)。压测工具用wrk,不用JMeter——后者太重,容易把结果污染成“测的是JMeter性能”。

二、HTTP模式:温柔但有点小倔强

配置:1个公网ELB + 4台ECS(t6.large),Nginx做后端,启用会话保持(cookie方式)。我们故意在其中一台ECS上模拟故障——kill -9 nginx进程。

结果:平均健康检查间隔15秒,但实际切流时间在22-28秒之间浮动。为啥?因为ELB默认用HTTP HEAD探活,而我们的Nginx崩了但端口还开着(TIME_WAIT残留),导致第一次探测返回502,第二次才真正失败。后来改成GET /healthz + 200状态码硬校验,切流稳在18秒内。

另一个坑:URL重写规则里写了^/api/(.*)$/v1/$1,结果某天前端发了个/api//user(双斜杠),重写后变成/v1//user,后端直接400。查日志才发现ELB的正则引擎不自动归一化路径。解决方案?加一行location ~ ^/api/ { rewrite ^/api/(.*)$ /v1/$1 break; }在Nginx里兜底——ELB不是万能胶,该自己拦的还得拦。

三、HTTPS模式:快是真快,累也是真累

配了两张证书:一张RSA 2048,一张ECDSA secp256r1。压测发现ECDSA握手快了37%,但iOS 12以下设备不兼容,最终选了RSA+OCSP Stapling双开。

重点来了:SSL卸载后,ELB默认不透传原始客户端IP,只给X-Forwarded-For。但我们有个风控系统要根据真实IP限频,结果发现XFF可能被伪造。翻文档+试错,终于找到开关:在监听器高级配置里勾选“获取真实IP”,再配合安全组放行ELB私网段,这才让后端拿到干净的源IP。这功能藏得比我家遥控器还深。

还有个温馨提醒:证书更新不是上传即生效。你上传新证书后,ELB会后台预热,期间旧证书仍服务,但新证书要等3-5分钟才能接管。别像我一样,刚点完“替换”就去测,结果抓包发现还在用老密钥……

华为云消费抵扣券 四、TCP模式:沉默的大力士

这是测试中最安静的一环——没日志、没重写、没Header。我们拉起一个自研的长连接推送服务(端口9999),模拟10万连接+每秒2000条心跳包。

ELB扛住了。连接数稳定在99,843(缺的157个是主动断连),CPU峰值62%,内存占用恒定3.2GB。但它也有脾气:健康检查必须用TCP端口探测,不能配HTTP。有次我们误填了HTTP路径,ELB直接把所有后端标为“异常”,整个推送通道静默瘫痪27分钟——监控只报“后端异常”,没写“你填错了协议”,属于典型的“高冷型队友”。

五、那些没写进文档的真相

1. 监控有盲区:ELB控制台的“新建连接数”指标,统计的是每分钟建立的新连接,但不包括复用的Keep-Alive连接。我们曾看到指标平缓,却遭遇后端雪崩——其实是单连接高频复用压垮了应用线程池。

2. 扩容不是点一下就完事:从1规格升到5规格,控制台显示“操作成功”,但实际生效要等6-8分钟。期间新增流量仍打在原规格上,高峰期慎升!

3. 跨AZ容灾≠零感知:我们把后端分散在AZ1和AZ2,手动关掉AZ1所有ECS。ELB确实切过去了,但首次请求延迟飙升到1.2秒(平时28ms)——因为AZ2的ECS还没完成TCP慢启动,前几个SYN包丢了。加了个“连接预热脚本”,提前建100个空连接,延迟回落到45ms。

六、最后说点掏心窝子的

华为云ELB不是魔法棒,它不会自动修复你写的烂代码,不会替你优化SQL,更不会因为你KPI紧急就多给你10%性能。但它是个守规矩的好搭档:配置明确、行为可预期、故障有迹可循。

如果你正在选型,别光看白皮书里的百万QPS,问问自己三个问题:

• 我的业务能否容忍20秒左右的故障转移?

• 我的团队有没有能力排查X-Forwarded-For伪造链路?

• 我的祖传服务,愿不愿意为ELB的健康检查暴露一个/healthz接口?

如果答案都是“能”,那ELB值得你签三年合同。如果还在犹豫……建议先开个按量付费实例,周末晚上压它两小时。记住,云服务不是越贵越好,而是越懂你越稳。

对了,文末彩蛋:华为云工单里提“希望增加健康检查超时时间自定义选项”,客服回复:“已登记需求,当前暂不支持。” —— 所以,别等,自己写个轻量级探针吧。

(完)

下载.png
Telegram售前客服
客服ID
@cloudcup
联系
Telegram售后客服
客服ID
@yanhuacloud
联系