集群是解决应用的高性能与高可用的一种技术,就目前的常规Java EE应用中,最常见最常用的就是Web集群。更规范一些说,web集群就是解决两个问题:客户请求的负载均衡和Session的高可用。
客户请求的负载均衡是指客户的请求依赖特定算法被合理地分配给多台Web Server来处理。
Session的高可用性是指当某台Web Server失效,这台Web Server服务的客户的请求会被透明地转发给其它有效Web Server,而会话状态(Session)依然可用。
对于负载均衡,一直是一个让人爱恨交织的东东。配置合理可以发挥每台服务器的最大性能,提供最好的性能与用户体验;配置不合理,则会让你焦头烂额,死得很难看。而这种东西往往很少能一下成功,往往在人将近绝望的时候,柳暗花明。
Apusic AS提供内置的负载均衡器,并且可以支持第三方的负载均衡器,甚至是硬件负载均衡器。下面分别介绍一下AAS内置的负载均衡器与第三方负载均衡器的配置方法。
- 使用AAS内置的负载均衡器有一个原生的优点,就是AAS内置实现分布式Session管理,既能保证集群的高性能又可以保证Session的高可用,集群中的服务器失效以后,Session切换非常及时,不会出现(在应用没有问题的情况下)Session突然丢失的情况。
采用Apusic LoadBalancer作为负载均衡器时,AAS内置提供三种负载均衡策略:
- 随机选择策略——按照随机算法,随机选择集群中一台服务器处理请求。
- Round-Robin策略——依次轮寻选择集群中一台服务器处理请求。
- 权重策略——按照权重的比例选择服务器处理请求。