服务器负载均衡问题,需要的设备和软件
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了服务器负载均衡问题,需要的设备和软件相关的知识,希望对你有一定的参考价值。
我这里要搭建一个网站,有WEB服务器、流媒体服务器、数据库服务器、直连存储,领导想要负载均衡的架构,有没有高手指点下具体都需要什么设备和软件,具体怎么来实现。
注:WEB服务器和数据库服务器做负载均衡,流媒体服务器由于不是主流应用,访问量很小,所以不用。系统采用windows 2008 数据库是SQL 2008
小弟这里先奉上50分,如果够详细,小弟再送上50分,谢了
1. 你要有提供相同应用的多台Web服务器。
2. 要有负载均衡的设备(可以是软件也可以是硬件)。
3. 要为这个服务分配一个虚拟地址(作为服务访问的统一入口)和若干真实地址(有几台Web服务器需要几个真实地址)。
注:一般建议采用硬件设备,通常需要做负载均衡的应用说明他的负载很大,专用的硬件比较可靠。
具备以上条件后将Web服务器连接到负载均衡设备上,在负载均衡设备上配置虚拟地址和真实地址、配置负载均衡算法,配置负载均衡策略,将负载均衡设备接入网络。
这样,外面的用户只需要访问这个虚拟地址就可以了,负载均衡设备收到请求后会按照负载均衡策略和算法把请求分配到真实地址上,实现负载功能。
以上所说只是负载均衡的一种部署方式,根据实际需要选择单臂、双臂接入网络;根据应用的特点选择健康检查的方式;根据应用选择是否使用回话保持算法等。 参考技术A WEB服务器
数据库服务器
存储
支持CMS集群管理方式;支持WEB管理,支持网络流量分析的路由器或交换机。用来实现NBL。
1.首先你要有这面的这些设备,服务器最好同一型号。要做成集群(NLB),共享存储,具体怎么做集群,网上有很多资料的。我就不细说了。
2.流媒体服务器。流媒体服务器可以通过已有的硬件设备来连接。客户端访问流媒体服务器,流媒体服务器再通过客户的请求来访问数据库。
3.访问数据库时,就可根据自己定义的NLB来实现负载均衡。 参考技术B 家我qq我帮你解答问题1219995673 参考技术C 具体不知道怎么做,。但是你可以把域名都智能解析到需要负载均衡的服务器上,这其实就是相当意义上的分流了
负载均衡软件和Web应用服务器详解
为什么我们使用软件负载均衡
海量并发下分散请求,减轻服务压力,分布式部署,容灾,解决单点问题,端口复用节约服务器资源
硬件负载均衡成本较高,设备维护较为复杂,稳定性高
nginx haproxy lvs(piranha)
php+fastcgi,modjk+tomcat
软件负责均衡原理
负载均衡分为七层和四层负载均衡,是由通信协议决定均衡模式,如SSL 443是TCP模式,http请求是应用层模式,然后按照一定的调度算法把请求调度到相应的节点
在统一接入层进行请求调度均衡
按照服务器性能调度请求,权值调整
业务层逻辑解耦,按照URL分发
IP层,按照网段分发
容灾
自适应性调度(nginx+fasctcgi,modjk+apache)
注意事项:
服务是否长连接
是否会话黏贴
32位系统和64位系统网络中断问题
安全相关
维护成本
节点生存检测
算法选择
避免跨IDC 跨网段 跨楼层
负责均衡软件特点
LVS特点:
抗负载能力强,使用IP负载均衡技术,只做分发,所以LVS本身并没有多少流量产生;
稳定性、可靠性好,自身有完美的热备方案;(如:LVS+Keepalived)
应用范围比较广,可以对所有应用做负载均衡;
不支持正则处理,不能做动静分离。
常用四种算法:
rr:轮叫,轮流分配到后端服务器;
wrr:权重轮叫,根据后端服务器负载情况来分配;
lc:最小连接,分配已建立连接最少的服务器上;
wlc:权重最小连接,根据后端服务器处理能力来分配。
可以采用ipvsadm –p(persistence)来保持session,默认是300/s 。
Nginx特点:
工作在7层,可以对做正则规则处理;(如:针对域名、目录进行分流)
配置简单,能ping通就能进行负载功能,可以通过端口检测后端服务器状态,不支持url检测;
抗高并发,采用epoll网络模型处理客户请求;
支持HTTP、TCP和EMail,应用范围比较少;
nginx主要是HTTP和反向代理服务器,低系统资源消耗。
常用四种算法:
RR:(默认)轮询,轮流分配到后端服务器;
weight:根据后端服务器性能分配;
ip_hash:每个请求按访问ip的hash结果进行分配,并发小时合适,解决session问题;
fair:(扩展策略),默认不被编译nginx内核,根据后端服务器响应时间判断负载情况,选择最轻的进行处理。
Haproxy特点:
支持两种代理模式:TCP(四层)和HTTP(七层),支持虚拟主机;
配置简单,支持url检测后端服务器状态;
仅做负载均衡软件使用,在高并发情况下,处理速度高于nginx;
TCP层多用于Mysql从(读)服务器负载均衡。
常用四种算法:
roundrobin:轮询,轮流分配到后端服务器;
static-rr:根据后端服务器性能分配;
leastconn:最小连接者优先处理;
source:根据请求源IP,与Nginx的IP_Hash类似。
为什么要解决session会话
负载均衡环境下,每个用户都有可能不固定的访问后端服务器,在有些应用情况下,是必须要求在一定时间内同一用户访问的所有请求都分配给后端同一台服务器去处理,例如:电子商务网站,用户注册页面等,一刷新页面,就会分配到后端的另一台服务器上,那刚才的页面上的信息也都没了,这种情况下,分配同一台服务器处理请求是至关重要的!
Web应用服务器对比
主流应用服务器:
Apache后台服务器(主要处理php及一些功能请求 如:中文url)
Nginx前端服务器(利用它占用系统资源少得优势来处理静态页面 大量请求)
Lighttpd 图片服务器
总体来说,随着nginx功能得完善将使他成为今后web server的主流。
三种服务器对比:
以上是关于服务器负载均衡问题,需要的设备和软件的主要内容,如果未能解决你的问题,请参考以下文章