负载均衡《构建高性能web站点》
由于单机性能是有限的,不管机器多么牛逼,最后都会受限于一些硬件和一些软件,在这个时候web的水平扩展变得非常重要。
常见的负载均衡的方式:
1.程序重定向
2.dns的A记录或者CNAME进行负载均衡
3.七层http反向代理负载均衡,也就是常见的nginx、HAProxy、varnish
4.四层负载均衡,在IP层实现的负载均衡
总结1:http重定向负载均衡
这个很好处理啊,当一个请求来的时候,通过一定的策略,把请求放到后端服务器。比如。策略一般用随机转发,或者通过监控后端机器的流量、负载等数据,发送到中转机进行一些简单的策略调度。
总结2:DNS负载均衡
这个应该所有的大型互联网公司都在用,首先是因为不能把所有的鸡蛋放在一个篮子里面,如果把所有的数据、程序放在一个地方,要是地震了不就全挂了。
但是dns不能实时的,有一定的缓存区,也就是你的机器挂掉了,dns才不管这个呢,依旧指向这个ip,一般公网上的dns提供商指定的最短dns的过期时间为3600s(一个小时),这是无法接受的。现在发现的dnspod 可以设置的最短的dns过期时间是600s,这个对于中小型网站来说,还是一个不错的选择。
dns负载均衡还有一个用处就是智能解析,可以把电信的解析到电信的机器,网通的解析到网通的机器,同样有dnspod可以做这个事情,这个比较适合中型网站。
动态dns:大型互联网公司一般都自己管理自己的dns,首先是业务台复杂,其次是cdn太多,最后是需要迅速切换流量和处理宕机事故。据我所知,新浪的dns过期时间是120s,也就是可以接受2分钟来切换故障(不知道我理解对与否).
总结3:反向代理负载均衡
nginx、HAProxy、varnish、squid都是目前最好的反向代理服务器。反向代理服务器需要的几个特性:
- 自身效率高,别弄到最后瓶颈在反向代理服务器
- 能对后端服务器有权重设置
- 对后端服务器有健康检查、异常服务器自动删除、自动恢复的功能
- 尽量只转发动态耗时的处理程序,静态的最好本地直接向浏览器传输。
总结4:IP层——四层的负载均衡(NAT)
核心思想:由linux内核来实现,在网络数据包从内核缓冲区到达用户程序地址空间前,尽早转发到其他服务器上。
首先,网络七层是分开设计的,IP层工作在应用层下,可以透明地进行转发,而应用层根本不知道下面的事情。
比如LVS,F5都是四层的负载均衡软件和设备
LVS-NAT,核心,修改包头
总结5:直接路由,也是修改数据包头,让真实服务器不经过负载均衡设备,直接传输数据给客户端。
LVS-DR
请求:浏览器————————>负载均衡设备——————–>真实服务器
响应:真实服务器——————————–>浏览器
写完了,大概总结了一下,没太好的思路,因为在大公司里面,这些都是系统工程师、运维做好了的,开发工程师一般不用考虑这个,但是我依旧感觉这个东西就是互联网的设置之一,毕竟一个服务器也干不了啥….
- 下一篇: php技术大会2011
- 上一篇: mysqlreport——MySQL 效能监控工具【转】
相关推荐
- Nginx模块开发入门【转】
- Posted on 09月19日
- 网页查重算法Shingling和Simhash研究
- Posted on 01月06日
- 我曾今写的二手书网——小熊图书网
- Posted on 09月16日
- IE iframe cookie session丢失问题【转】
- Posted on 07月04日
zz
好久没来了,过来踩踩
不错的网站,很喜欢,期待互访
秒赞不是偶然,是一种态度!
路过看一下!
这个更刺j激,准备好手纸哦 A 片。。 http://T.CN/RcDykDn
精彩大片你懂,htTP://uVU.Cc/iqVp
男人的天堂、高清s萝舞,电动s棒棒各种耍 http://uVU.cc/iqVo
我活了这么些年没见过一个投过票的,要是大家都不投票那他妈的是谁选出来的委员????
信不信我把这地下室砸了,靠!
精仿奢侈品ﬞ高仿手表ﬞ一件代发 +VX:LoveMeJck
精仿奢侈品ﬞ高仿手表ﬞ一件代发 +VX:LoveMeJck