快讯资讯
手机优化
系统数码
网络通信人工智能
网站游戏
测评专题
智车

  循序渐进讲解负载均衡       数据中心如何为可持续发    

循序渐进讲解负载均衡vivoGateway(VGW)

时间:2026-10-28 18:59 来源:未知 人气:

一、怎么保证你的业务可靠

想一个问题:假设你有10台服务器对外提供相同的服务,你如何保证这10台服务器能稳定处理外部请求?

这里可能有很多种解决方案,但本质上都是处理下述两个问题:

① 客户端的请求应该分配去哪一台服务器比较好?

② 万一其中某些服务器故障了,如何隔离掉故障服务器?

问题① 处理不好,可能会导致10台服务器中的一部分服务器处于饥饿状态,没有被分配客户端请求或者是分配得很少;而另一部分则一直在处理大量的请求,导致不堪负重。

问题② 处理不好,则CAP原则中的可用性(A)可能就没法保证,除非系统不需要A。

要解决上述问题,你必须实现一套控制器,能调度业务请求和管理业务服务器。很不幸的是,大多数情况下这个控制器往往就是整个系统的瓶颈。因为控制系统如果不深入到客户端上,就必须依赖一个集中式的决策机构,这个机构必然要承载所有客户端的请求。这时候你又得去考虑这个控制器的冗余和故障隔离的问题,这就变得无休无止。

二、业务和控制隔离

那么,如何解决上述问题?

那就是专业的事情交给专业平台去做,即,我们需要独立的负载均衡提供上述2点的解决方案。

对于客户端来说,每次请求一个站点,最终都会转变成对某个IP发起请求。所以只要能控制客户端访问的IP地址,我们就能控制请求应该落到哪个后端服务器上,从而达到调度效果,这是DNS在做的事情。或者,劫持客户端所有请求流量,对流量重新分配请求到后端服务器上。这个是Nginx、LVS等的处理方式。

图1、通过DNS实现负载均衡的效果示意图

图2、通过LVS/Nginx实现负载均衡的效果示意图

这两个方式都能达到负载均衡的效果。但这里面有个严重的问题,DNS、Nginx、LVS等服务在互联网时代不可能单机就能提供业务,都是集群式(也就是有N台服务器组成),那这些集群的可靠性和稳定性又该如何保证呢?

DNS主要负责域名解析,有一定的负载均衡效果,但往往负载效果很差,不作为主要考虑手段。Nginx提供7层负载均衡,主要靠域名来做业务区分和负载。LVS是4层负载均衡,主要靠TCP/UDP协议、IP地址、TCP/UDP端口来区分服务和负载。

为了解决Nginx、LVS这些负载均衡器集群的负载均衡及可靠性,我们可以做下述简单的

更多文章

相关文章

网站导航: | 快讯 | 资讯 | 手机 | 优化 | 系统 | 数码 | 网络通信 | 人工智能

  • 游戏 | 测评 | 专题 | 智车

    合作伙伴:

  • 友情链接(欢迎业界知名网站交换链接)申请友情

    

    声明:本站资源皆来自网络,如有侵权问题,请联系管理员处理!

    Copyright ©2020-2028快知站 版权所有 All rights reserved.

    闽ICP备20010713号-1 闽公网安备 35020602001684号