服务器端负载均衡技术的本质原理

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-09 01:56:43

服务器端负载均衡技术的本质原理的相关文章

架构设计:负载均衡层设计方案之负载均衡技术总结篇

前言 1.概述 通过前面文章的介绍,并不能覆盖负载均衡层的所有技术,但是可以作为一个引子,告诉各位读者一个学习和使用负载均衡技术的思路.虽然后面我们将转向"业务层"和"业务通信"层的介绍,但是对负载均衡层的介绍也不会停止.在后续的时间我们将穿插进行负载均衡层的新文章的发布,包括Nginx技术的再介绍.HaProxy.LVS新的使用场景等等. 这篇文章我们对前面的知识点进行总结,并有意进行一些扩展,以便于各位读者找到新的学习思路. 2.负载均衡层的核心思想 2-1.一

LVS集群中的IP负载均衡技术

章文嵩 ([email protected]) 转自LVS官方参考资料 2002 年 4 月 本文在分析服务器集群实现虚拟网络服务的相关技术上,详细描述了LVS集群中实现的三种IP负载均衡技术(VS/NAT.VS/TUN和VS/DR)的工作原理,以及它们的优缺点. 1.前言在 前面文章中,讲述了可伸缩网络服务的几种结构,它们都需要一个前端的负载调度器(或者多个进行主从备份).我们先分析实现虚拟网络服务的主要技术,指出 IP负载均衡技术是在负载调度器的实现技术中效率最高的.在已有的IP负载均衡技术

LVS负载均衡技术介绍

一.LVS集群介绍 LVS集群采用IP负载均衡技术和基于内容请求分发技术,因为所有的操作都是在Linux操作系统核心空间中将完成的,它的调度开销很小,所以调度器具有很好的吞吐率,将请求均衡地转移到不同的服务器上执行,且调度器自动屏蔽掉服 务器的故障,从而将一组服务器构成一个高性能的.高可用的虚拟服务器.整个服务器集群的结构对客户是透明的,而且无需修改客户端和服务器端的程序,实现模式主要有:VS/NAT模式,VS/TUN模式(IP隧道模式),VS/DR模式(直接路由模式). 二.LVS负载均衡方式

负载均衡技术分析与测试报告

负载均衡技术分析与测试报告                 目录 负载均衡测试报告... 1 负载均衡技术概述:... 2 服务器负载均衡... 2 链路负载均衡... 3 Outbound链路负载均衡... 3 Inbound链路负载均衡... 4 常见负载均衡调度算法... 5 测试目的... 6 测试环境搭建... 7 1:原始网络环境... 7 2:测试网络环境... 7 测试设备介绍... 8 1:产品介绍... 8 2:产品操作界面... 8 出现问题... 9 最终解决方案...

负载均衡技术全攻略

转自:http://www.blogjava.net/carter0618/archive/2007/10/16/153131.html 大量的负载均衡相关文档链接,在这里收集起来,以备后用 负载均衡技术 2005-08-20 shenghuafen 集群的负载均衡技术 2005-04-04 liumyong 使用负载均衡技术建设高负载的网络站点2004-08-22 johnathan 基于linux的负载均衡技术 2005-12-02 yhb72 web集群服务的负载均衡方案选择与实现 200

负载均衡技术在CDN中发挥着重要作用

转载地址:http://www.qicaispace.com/gonggao/server/page01/info07.asp CDN是一个经策略性部署的整体系统,能够帮助用户解决分布式存储.负载均衡.网络请求的重定向和内容管理等问题. 其目的是通过在现有的Internet中增加一层新的网络架构,将网站的内容发布到最接近用户的网络“边缘”,使用户可以就近取得所需的内容,解决 Internet网络拥塞状况,提高用户访问网站的响应速度.从技术上全面解决由于网络带宽小.用户访问量大.网点分布不均而产生

linux 负载均衡技术之 LVS

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

LVS的三种负载均衡技术,八大负载调度算法

1.LVS项目简介 LVS是Linux Virtual Server的简写,意即Linux虚拟服务器,是一个虚拟的服务器集群系统.本项目在1998年5月由章文嵩博士成立,是中国国内最早出现的自由软件项目之一.章文嵩博士目前工作于阿里集团,主要从事集群技术.操作系统.对象存储与数据库的研究. 2.LVS功能及其原理 针对高可伸缩.高可用网络服务的需求,我们给出了基于IP层和基于内容请求分发的负载平衡调度解决方法,并在Linux内核中实现了这些方法,将一组服务器构成一个实现可伸缩的.高可用网络服务的

Web服务器Tomcat集群与负载均衡技术

我们曾经介绍过三种Tomcat集群方式的优缺点分析.本文将介绍Tomcat集群与负载均衡技术具体实施过程. 在进入集群系统架构探讨之前,先定义一些专门术语: 1. 集群(Cluster):是一组独立的计算机系统构成一个松耦合的多处理器系统,它们之间通过网络实现进程间的通信.应用程序可以通过网络共享内存进行消息传送,实现分布式计算机. 2. 负载均衡(Load Balance):先得从集群讲起,集群就是一组连在一起的计算机,从外部看它是一个系统,各节点可以是不同的操作系统或不同硬件构成的计算机.如