负载平衡

虽然游戏离正式上线还很久,但是难得的平静心情肯定不能浪费,好好研究下。

转自:
维基百科

简介

在多个计算机(计算机集群)、网络连接、CPU、磁盘驱动器或其他资源中分配负载,以达到最优化资源使用、最大吞吐量、最小化响应时间、同时避免过载的目的。

负载平衡 建立在现有网络结构上,提供一种廉价有效地方法扩展网络设和服务器的带宽、增加吞吐量、加强网络数据处理能力、提高网络的灵活性 和可用性。

原理

负载平衡通常是一个软体程序,这个程序侦挺到一个外部端口,互联网用户可以通过这个端口来访问服务,而作为负载平衡的软体会将用户的请求转发给后台内网服务器,后台内网服务器将请求的响应返回给负载平衡器,负载平衡器再将响应发送到用户,这样就向互联网用户隐藏了内网结构,阻止了用户直接访问后台内网服务器,使得服务器更加安全,可以阻止对核心网络栈和运行在其他端口服务的攻击。
当有后台服务器出现障碍时,有些负载平衡器会提供一些特殊的功能来处理这种情况。例如转发请求到一个备用的负载平衡器,显示一条关于服务中断的消息等。负载平衡器使得IT团队可以显著提高容错能力。它可以提供大量的容量以处理任何应用程序流量的增加或减少。

用户会话

负载均衡器的一个重要问题是如果和保存用户会话,如果会话信息保存在后台服务器,用户接下来的请求可能会被分配到不同的后台服务器,此时用户 会话就无法继续。
负载均衡器可以缓存用户会话,然后将用户请求发送到不同的后台服务器。但这将带来负载均衡器的负载问题。

解决办法

  1. 将用户会话的所有请求都发送到同一个服务器,即persistence或stickiness,不足之处在于如果后台服务器障碍,任何依赖于它的会话都会丢失。
  2. 依据用户名,客户端ip来分配提供服务器的服务器,也可以随机分配。因为客户可能是通过DHCP、NAT或者web代理来链接Internet的,其IP地址可能经常变化,这使得这个方案的服务质量无法保障。随机分配然后负载均衡器将会话信息存储保存,如果负载均衡器被替换或者故障,这些信息可能会丢失,另外,如果负载均衡器负载比较高时,为保证分配空间不会被耗尽,超时的分配信息必须被删除。随机分配方法也要客户维持会话状态,如果客户流量器禁用了cocokies的功能,就会引起问题,优秀的负载均衡器会使用多种持续继续,以避免不可以用时故障。
  3. 将会话信息存到数据库中,由于这个方案会增加数据库的负载,所以这个方案对性能的提高并不好。数据库最好是用来存储会话时间较长的会话数据。避免数据库出现单点故障,并且提高其扩展性,数据库通常会复制到多台服务器,通过负载均衡器来分发请求道数据库服务器上。集群中所有的服务器豆浆它们的会话信息保存到状态服务器上,同时它们可以向状态服务器查询会话数据。

特性

  1. 不对称负载调节,可以对后台服务器设置权重因子,权重因子用于控制服务器的请求处理量,进而控制服务器的负载。当后台服务器的处理能力不是同等的时候,这是一种控制服务器负载的简单方法。
  2. 优先引导,当出现故障的服务器达到某个阈值,或者服务器负载过高时,备用服务器必须可以及时上线提供服务。
  3. DDOS攻击防护。负载均衡器可以提供例如SYN cookies特性和延时绑定(在TCP握手完成之前,后台服务器不会与用户通讯)来减缓SYN flook攻击,并且通常将工作从服务器分载到更有效的平台。
  4. HTTP压缩。使用gzip压缩HTTP数据,以减少网络上的数据传输量。对于响应时间较长,传输距离较远的用户,这一特性对于缩短响应时间效果明显。这个特性会要求更多一些的负载均衡器CPU,这一功能也可以由Web服务器来完成。
  5. TCP offload。不同的厂商叫法可能不一样。其主要思想是一样的,通常每个用户的每个请求都会使用一个不同的TCP连接,这个特性利用HTTP/1.1将来自多个用户的多个请求合并为单个TCP socket再转发给后台服务器。
  6. TCP缓冲。负载均衡器可以暂存后台服务器对客户的响应数据,再将它们转发给那些响应时间较长网速较慢的客户,如此后台Web服务器就可以释放相应的线程去处理其它任务如直接整个响应数据直接发送给网速较快的用户。
  7. (服务器)健康检查。负载均衡器可以检查后台服务器应用层的健康状况并从服务器池中移除那些出现故障的服务器。
  8. HTTP缓存。负载均衡器可以存储静态内容,当用户请求它们时可以直接响应用户而不必再向后台服务器请求。
  9. 内容过滤。有些负载均衡器可以按要求修改通过它的数据。
  10. HTTP安全。有些负载均衡器可以隐藏HTTP出错页面,删除HTTP响应头中的服务器标示信息,加密cookies以防止用户修改。
  11. 优先队列。也可称之为流量控制。它可以对不同的内容设定不同的优先级。
  12. 内容感知开关(Content-aware switching)。大多数负载均衡器可以基于用户请求的URL发送请求到不同的后台服务器,无论内容是加密(HTTPS)还是没有加密(HTTP)。
  13. 用户授权。对来自不同身份验证源的用户进行验证,然后再允许他们访问一个网站。
  14. 可编程的流量控制。不只一种负载均衡器允许使用脚本编程来定制负载均衡方法、任意的流量控制以及其它功能。
  15. 防火墙功能。由于安全的原因,不允许用户直接访问后台服务器。防火墙是由一系列规则构成,它们决定着哪些请求可以通过一个接口而哪些不被允许。
  16. 入侵阻止功能。在防火墙保障网络层/传输层安全的基础上,提供应用层安全防范。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值