负载均衡:不只是平均分配
负载均衡不只是轮询分请求。节点能力不同要加权,实时负载不同要动态选,有状态要保亲和,缓存要一致性哈希,节点上下线要平滑过渡,健康检查要主动加被动,还得和熔断配合。多层配合比单层完美更靠谱。
「2026-09」的文章 清除筛选
负载均衡不只是轮询分请求。节点能力不同要加权,实时负载不同要动态选,有状态要保亲和,缓存要一致性哈希,节点上下线要平滑过渡,健康检查要主动加被动,还得和熔断配合。多层配合比单层完美更靠谱。
Nginx、Apache、Tomcat、Caddy、Traefik,还有框架自带的 uvicorn、Gunicorn、net/http——这些 Web 服务器各自擅长什么,什么场景选什么。
脑裂:集群分区后两个子集各自选出主节点,并行写入导致数据分叉。根因不是节点真挂了,而是看起来挂了——网络分区、心跳超时、VM暂停都会触发。防护靠 quorum + fencing token + 租约三层。Raft/Paxos 防选主脑裂,但 fencing 仍需存储层配合。
幂等性(Idempotency)= 同一操作执行一次和多次产生相同结果。分布式环境下网络超时、消息重投、自动重试逼着操作必须幂等。实现靠"记住做过没有":request_id 去重表、唯一约束、状态机、乐观锁。幂等和并发安全是两件事——前者管重复不出错,后者管同时不出错。
一个服务刚上线,没用户,没登录。调用方都是内部系统,相互信任——IP 白名单就够了。 后来用户来了。要区分谁是谁。再后来有管理员、有普通用户、有只读用户。角色一多,权限判断就散在代码里——if user.role == 'admin' 写了二十遍,改一次要改二十个文件。 这时候你才开始看认证鉴权方案
一个服务每天往外吐几十 G 日志。你第一反应不是「换个压缩算法」,是「太大了,压一下」。 gzip -9 access.log,跑完一看,体积缩到十分之一。满意了。 后来日志量翻倍,gzip 跑一次要二十分钟。你开始想:能不能快点。 再后来上了 Kafka,消息要实时传。压缩不是在磁盘上慢慢压——每