当一个项目沉淀一段时间后,随着用户量的提升,用户群体庞大起来。这时候就会出现过多的用户访问导致服务器(单机)供应不足。那么,负载均衡就出现了。
- 假设我有60w的用户量,那么负载如下图:
graph TD; A["nginx入口服务器"]-->B1["nginx负载1(20w)"]; A-->B2["nginx负载2(20w)"]; A-->B3["nginx负载3(20w)"];
此时分配负载是正确的。但是,某个时间段突然用户量飙升,超过了60w的访问量。这个时候增加服务器就来不及。这就又回到初始问题,服务器宕机。因此,要对负载服务器做限流,超过访问量就禁止访问。
- 假设我有160w的用户量,那么负载如下图:
graph TD; A["nginx主服务器"]-->A1; A-->A2; A-->A3; A1["nginx入口服务器(55w)"]-->B11["nginx负载1(20w)"]; A1-->B12["nginx负载2(20w)"]; A1-->B13["nginx负载3(20w)"]; A2["nginx入口服务器(55w)"]-->B21["nginx负载1(20w)"]; A2-->B22["nginx负载2(20w)"]; A2-->B23["nginx负载3(20w)"]; A3["nginx入口服务器(55w)"]-->B31["nginx负载1(20w)"]; A3-->B32["nginx负载2(20w)"]; A3-->B33["nginx负载3(20w)"];
- 假设我有500w用户,要做个抽奖活动。
这个就需要考虑一下,假如活动真有500w或者500w以上,超过服务器负载了。那么就会导致一部分负载服务器拦截,而被拦截的用户转而调到另外的负载服务器。很显然,这样持续下去会导致整个服务全部崩溃。这个时候就要考虑把抽奖活动单独部署出来,而活动服务器只是短期的伸缩服务器。那么,负载如图:
graph TD; A["nginx主服务器"]-->A1; A-->A2; A-->A3; A["nginx主服务器"]-->H1["活动服务器(30w)"]; A-->H2["活动服务器(30w)"]; A-->H3["活动服务器(30w)"]; A-->H4["活动服务器(30w)"]; A-->H5["活动服务器(30w)"]; A-->H6["活动服务器(30w)"]; A-->H7["活动服务器(30w)"]; A1["nginx入口服务器(55w)"]-->B11["nginx负载1(20w)"]; A1-->B12["nginx负载2(20w)"]; A1-->B13["nginx负载3(20w)"]; A2["nginx入口服务器(55w)"]-->B21["nginx负载1(20w)"]; A2-->B22["nginx负载2(20w)"]; A2-->B23["nginx负载3(20w)"]; A3["nginx入口服务器(55w)"]-->B31["nginx负载1(20w)"]; A3-->B32["nginx负载2(20w)"]; A3-->B33["nginx负载3(20w)"];
假设不因一个异常而导致其他服务不可用
那就考虑服务分化部署,即微服务
graph TD; A(入口)-->B1(用户层); A-->B2(订单); A-->B3(活动); A-->B4(商品); A-->B5(物流); A-->B6(日志); A-->B7(客服); A-->B8(支付); B1-->C1(用户信息); B1-->C2(用户任务); B2-->D1(订单生成); B2-->D2(订单支付); B2-->D3(购物车); B3-->E1(秒杀); B3-->E2(团购); B3-->E3(竞拍); B4-->F1(商品搜索); B4-->F2(商品详情); B4-->F3(商品推荐); B5-->G1(信息更新); B5-->G2(服务商对接); B6-->H1(请求日志); B6-->H2(交易日志); B6-->H3(浏览日志); B7-->I1(纠纷处理); B7-->I2(订单处理); B7-->I3(投诉处理); B8-->J1(支付宝); B8-->J2(微信); B8-->J3(银联); B8-->J4(paypal); B8-->J5(第三方支付);
本文作者:
艾瑞可erik
本文链接: https://erik.xyz/2021/12/29/about-centos-load-balacnig/
版权声明: 本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。转载请注明出处!
本文链接: https://erik.xyz/2021/12/29/about-centos-load-balacnig/
版权声明: 本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。转载请注明出处!