实现
负载平衡实现的两种主要类别是:
•基于软件的负载平衡。基于软件的负载平衡包括在负载平衡群集中安装在服务器上的特殊软件。软件根据不同的算法分派或接受客户端向服务器发出的请 求。算法可以是简单的循环算法,也可以是考虑服务器关系的更复杂的算法。例如,Microsoft® Network Load Balancing 是用于 Web 场的负载平衡软件,而 Microsoft Component Load Balancing 是用于应用程序场的负载平衡软件。
•基于硬件的负载平衡。基于硬件的负载平衡是由以软件为其提供负载平衡功能的专用交换机或路由器组成的。此解决方案将交换功能和负载平衡功能集成到 单个设备中,从而减少了实现负载平衡所需的额外硬件数量。但是,将这两项功能组合在一起,也会使设备的故障排除工作变得更困难。
示例
为了帮助您更好地了解如何使用负载平衡实现可伸缩性,下面的讨论将现有的非负载平衡解决方案(该方案在应用程序层中包含单个系统,即故障单点)与保持性能并提供可用性的高伸缩解决方案进行比较。
非负载平衡层
一开始,组织可能采用类似于图 4 中所描述的解决方案体系结构,该体系结构可能满足最初的性能要求。但是,随着负载的增加,应用程序层必须适应增加的负载,才能保持可接受的性能。
图 4:具有单台应用程序服务器的基本解决方案
在图 4 中,应用程序层只包含一台为客户端请求提供服务的应用程序服务器 (AppServer20)。如果该服务器超载,则解决方案的性能将降至不可接受的级别,或变得不可用。
负载平衡层
要提高可伸缩性并保持性能,组织可能会使用负载平衡器来扩展应用程序层。在下面的示例(如图 5 所示)中,将两台服务器添加到应用程序层以创建负载平衡群集,该群集将访问数据层数据,并为客户端层中的客户端提供对应用程序的访问服务。
图 5:具有可伸缩应用程序层的解决方案
这将得到一个标准的负载平衡设计。硬件设备或运行在主机上的软件将虚拟主机名 (AppServer20) 和 IP 地址分配给 AppServer1、AppServer2 和 AppServer3。负载平衡的群集向网络公开此虚拟 IP 地址和主机名,并在组内的正常运行服务器之间均衡地分配传入请求的负载。如果 AppServer1 出现故障,则只需将请求定向到 AppServer2 或 AppServer3 即可。取决于提供此功能的技术,可以将一定数目的额外服务器添加到负载平衡的群集中,以最大限度地提高可伸缩性,并超前满足不断增长的需求。
总结
Load-Balanced Cluster 模式具有下列优缺点:
优点
•改进的可伸缩性。可伸缩的负载平衡层使系统可以在提高可用性的同时保持可接受的性能级别。
•更高的可用性。通过负载平衡,可以使服务器脱机进行维护,而不会让应用程序不可用。
•可能会降低成本。与更高成本的多处理器系统相比,多台低成本服务器通常会降低成本。
缺点
•开发过程复杂。如果解决方案必须维护各个事务或用户的状态,则开发负载平衡的解决方案会是很困难的。
•没有解决网络故障问题。如果在客户端会话过程中服务器或网络出现故障,则可能需要重新登录才能重新验证客户端和重新建立会话状态。
原文转自:http://blog.sina.com.cn/s/blog_c34954a30101tkhl.html