web服务器端负载均衡技术原理解密

1、什么是负载?

负载就是服务器端的“资源”:主要就是CPU和IO。

前者适宜于计算密集型的任务,后者则对应数据密集型的任务。

2、负载均衡的前提

就是负载(或者说CPU/IO资源)可以切分,划分到不同的计算机(或者CPU核)上去。

要做到这一点,首先底层的运算应该是可以中断并调度的,IO是可以多路扩散的。否则一个简单的CPU死循环指令this: jmp this(跳回自己)就会让计算机什么也干不了,而IO嘛,IO要是不停地中断阻塞了总线,计算机也会一样啥也干不了(不过正常情况下IO总线没CPU内部总线快)

3、负载均衡的本质

负载既然可以切分到不同的计算机上去(分布式系统,这些计算机之间的一致性怎么维护、事务ACID性质怎么保持、怎么提高可用性、CAP/BASE是另外的话题),那么剩下来的关键是对外部的大规模并发请求做路由了。

首先假设每个请求对应服务器端的一台计算机处理,如果能够将外部请求对应的负载比较均匀地分布到各个计算机节点上去,则负载均衡无疑会做得比较成功。

不考虑分布式数据库的后端技术,则负载均衡的核心就在于路由。这个路由,其实就是一个Hash函数。

函数的输入是什么呢?所有可供区分的外部用户请求参数,比如:用户ID、会话ID、请求参数、网络层地址,等等。

输出是什么呢?假设最终处理请求的计算机编号为1到N,则路由Hash函数的输出就是[1..N]之间的一个整数。

很显然,如果输入均匀(随机),Hash函数可以采取线性Hash运算,就可以确保负载均衡地落在这N个处理节点上。无疑是,输入有时候可能并不均匀,往往落在某个局部区间的请求过多,这往往会导致热点/瓶颈,假如这部分不均匀输入样本的总数相比总的输入空间来说不是很大的话,理论上,还是可以找到一个能够用的非线性Hash算法(比如说SHA1/256之类),使得输入仍然能够均匀地落在区间[1..N]上。

4、多层次路由

实际应用中,前述路由Hash运算不是只在一个点上执行,而是可能在多个层次上做,比如说:网络层LB技术LVS(Linux Virtual Server)、前端代理(带Round Robin轮询的HTTP反向代理、数据库连接驱动代理)、DNS分派

这很容易让人联想到神经网络里的多层前向/反馈网络(那个深度学习不就是增加中间节点的层次深度吗),不管怎么说,多层次的路由其实就是数学上的非线性Hash映射。

负载均衡的本质差不多就是这样。对于实际应用来说,关键就在于设计一个Hash函数,使得对于此应用特定的数据而且,能够做到均匀地分发到后端处理节点上。

时间: 2024-10-31 07:52:03

web服务器端负载均衡技术原理解密的相关文章

高负载Web站点负载均衡技术的应用

Internet的快速增长使多媒体网络服务器,特别是http://www.aliyun.com/zixun/aggregation/17117.html">Web服务器,面对的访问者数量快速增加,网络服务器需要具备提供大量并发访问服务的能力.例如Yahoo每天会收到数百万次的访问请求,因此对于提供大负载Web服务的服务器来讲,CPU.I/O处理能力很快会成为瓶颈. 在有些大型网络,由于多个服务器群内硬件设备.各自的规模.提供的服务等的差异,我们可以考虑给每个服务器群采用最合适的负载均衡方式

linux 负载均衡技术之 LVS

一. LVS简介LVS是Linux Virtual Server的简称,也就是Linux虚拟服务器, 是一个由章文嵩博士发起的自由软件项目,它的官方站点是www.linuxvirtualserver.org.现在LVS已经是 Linux标准内核的一部分,在Linux2.4内核以前,使用LVS时必须要重新编译内核以支持LVS功能模块,但是从Linux2.4内核以后,已经完全内置了LVS的各个功能模块,无需给内核打任何补丁,可以直接使用LVS提供的各种功能. 使用LVS技术要达到的目标是:通过LVS

门户网站负载均衡技术的六大新挑战

得上大学时,我和好友老郭讨论最多的话题便是:"像新浪这样的网站是如何支撑如此巨大的访问量?"也曾通过各种手段,猜测新浪服务器的数量.操作系统和应用软件的版本--一切都是那么神秘.毕业那年,有幸加入新浪,终于一点点地揭开了这层神秘的面纱.2004年某厂商设备介绍会上,我初次接触到了负载均衡技术.之后的几年时间,可以说是负载均衡设备在网站推广的黄金爆发期. 发展到今天,一方面硬件设备依然保持了强劲的实力,另一方面以LVS.Haproxy为代表的软件负载均衡也异军突起,被人们所认可.在新浪,

门户网站负载均衡技术的六大新挑战,互联网营销

文 / 李晓栋 记得上大学时,我和好友老郭讨论最多的话题便是:"像新浪这样的网站是如何支撑如此巨大的访问量?"也曾通过各种手段,猜测新浪服务器的数量.操作系统和应用软件的版本--一切都是那么神秘.毕业那年,有幸加入新浪,终于一点点地揭开了这层神秘的面纱.2004年某厂商设备介绍会上,我初次接触到了负载均衡技术.之后的几年时间,可以说是负载均衡设备在网站推广的黄金爆发期. 发展到今天,一方面硬件设备依然保持了强劲的实力,另一方面以LVS.Haproxy为代表的软件负载均衡也异军突起,被人

Apache实现Web Server负载均衡详解(不考虑Session版)

本篇文章是对使用Apache实现Web Server负载均衡的方法进行了详细的分析介绍,需要的朋友参考下(不考虑Session版)   至少需三台服务器:服务器A:控制服务器 服务器B和服务器C:实际执行服务器 负载均衡原理:将访问服务器A的请求分发至服务器B和服务器C 修改服务器A上apache的http.conf文件: 首先,加载相应的代理模块,去掉以下模块前面的#号:LoadModule proxy_module modules/mod_proxy.so LoadModule proxy_

azure-Azure的负载均衡的原理是啥

问题描述 Azure的负载均衡的原理是啥 大家好 谁知道Azure的负载均衡的原理是啥?? 求解答!!! 解决方案 云计算-Azure-3.负载均衡集http://blog.chinaunix.net/uid-10565106-id-4359112.html 解决方案二: 四层负责均衡:是通过报文中的目标地址和端口,再加上负载均衡设备设置的服务器选择方式,决定最终选择的内部服务器与请求客户端建立TCP连接,然后发送Client请求的数据. 由上图可知:在四层负载设备中,把client发送的报文目

服务器集群中的负载均衡技术深入讲解

&http://www.aliyun.com/zixun/aggregation/37954.html">nbsp;   由于目前现有网络的各个核心部分随着业务量的提高,访问量和数据流量的快速增长,其处理能力和计算强度也相应地增大,使得单一的服务器设备根本无法承担.在此情况下,如果扔掉现有设备去做大量的硬件升级,这样将造成现有资源的浪费,而且如果再面临下一次业务量的提升时,这又将导致再一次硬件升级的高额成本投入,甚至性能再卓越的设备也不能满足当前业务量增长的需求.  针对此情况而衍

负载均衡技术扫盲

虚拟IP(VIP) 就是类似域名通过DNS屏蔽掉了ip这样,虚拟ip就是要达到相同的效果. 域名 VIP 域名A类解析,绑定ip地址 更改MAC地址 域名跳转,跳到下个域名 NAT技术 LVS(Linux Virtual Server): LVS是Linux Virtual Server的简写,意即Linux虚拟服务器,是一个虚拟的服务器集群系统.这儿不得不提到该项目的创始人,章文嵩博士,这是国内为数不多的NB项目之一.目前,该源码已经进入Linux内核.LVS是目前使用最广泛的负载均衡系统.

Nginx+Keepalived实现Web服务器负载均衡

说明: 操作系统:CentOS 5.X 64位 Web服务器:192.168.21.127.192.168.21.128 站点:bbs.111cn.net和sns.111cn.net部署在两台Web服务器上 实现目的: 增加两台服务器(主主模式),通过Nginx+Keepalived实现Web服务器负载均衡 架构规划: Nginx服务器:192.168.21.129.192.168.21.130 虚拟服务器(VIP):192.168.21.252.192.168.21.253 部署完成之后: 1