首页 > 代码库 > 负载均衡实现应用服务器的伸缩性
负载均衡实现应用服务器的伸缩性
应用服务器应该设计成无状态的,如果将部署有相同应用的服务器组成一个集群,每次用户请求都可以发送到集群中任意一台服务器上去处理,任何一台服务器的处理结果都是相同的。这样只要能将用户请求按照某种规则分发到集群的不同服务器上,就可以构成一个应用服务器集群,每个用户的每个请求都可能落在不同的服务器上。
如果http请求分发装置可以感知或者可以配置集群的服务器数量,可以及时发现集群中新上线或者下线的服务器,并能向新上线的服务器分发请求,停止向已下线的服务器分发请求,那么久实现了应用服务器集群的伸缩性。
这个http请求分发装置就被称作负载均衡服务器。
1. Http重定向负载均衡:将真正的Web服务器地址写入Http重定向响应中(状态码302)返回给用户浏览器。优点:简单。缺点:浏览器需要两次请求才能完成一次访问,性能较差,重定向服务器自身处理能力可能成为系统瓶颈
2. DNS域名解析负载均衡:DNS中保存多个网站的IP地址,DNS根据负载均衡算法返回一个IP地址返回给浏览器。优点:把负载均衡工作交给DNS,同时许多DNS支持根据地址位置的域名解析,即会将域名解析成距离用户最近的服务器地址,加快用户访问,提高访问速度,提升性能。缺点:DNS有缓存。
3. 反向代理负载均衡:反向代理服务器处于Web服务器之前,管理一组Web服务器,将请求根据负载均衡算法转发到不同的Web服务器上,Web服务器处理完成的请求通过反向代理服务器返回给用户。由于Web服务器不直接对外提供访问,因此Web服务器不需要使用外部IP地址,而反向代理服务器则需要配置双网卡和内部外部两套IP。优点:反向代理和负载均衡统一部署,方便简单。缺点:反向代理服务器是所有请求的中转站,可能成为性能瓶颈。
负载均衡实现应用服务器的伸缩性