什么是企业应用集群
集群是指把不同的服务器集中在一起,组成一个服务器集合,这个集合给客户端提供一个虚拟的平台,使客户端在不知道服务器集合结构的情况下可以对这一服务器集合进行部署应用,获取服务等操作。集群是企业应用的主要特点,它可以提供:
- 高扩展性:可以根据自己业务需求添加任意多的服务器到集群
- 高可用性:使用透明的负载均衡和容错机制,对客户端隐藏集群内部的错误
不管是扩展自己的集群的节点数,还是配置负载均衡、容错,集群中各节点之间状态必须保持一致,集群中状态保持一致需要借助与缓存机制实现(JBoss使用JGroups,Infinispan我们在后面的系列介绍)。如下图为一传统企业应用集群模式:
图-1传统企业应用集群
1. 客户端浏览器发送请求
2. 负载均衡器转发请求到节点1
3. 节点1处理业务时发生异常
4. 负载均衡切换请求到节点2
5. 节点2完成业务请求返回结果给客户端请求
上述业务请求完成过程中客户端不知道服务器端节点1发生异常。业务能够完成的核心是两个节点之间实时进行着状态复制,而状态复制需要借助于缓存框架和产品(JBoss使用JGroups,Infinispan我们在后面的系列介绍)。
使用Apache httpd和JBoss构架高可用集群环境
Apache httpd作为负载均衡器和后台中间件服务器构建构架高可用企业应用集群是非常普遍的一种方式,当前主要三大中间件JBoss,Weblogic,Websphere都支持Apache httpd作为负载均衡器。JBoss做为开源的产品是最被广泛使用的中间件,JBoss在被Red Hat公司收购后又推出企业版EAP(EnterpriseApplication Platform),从而使JBoss在许多核心业务领域被使用。比如印度铁路系统底层为JBoss; 2012伦敦奥运会系统底层是4台JBoss的集群等。如下我们将使用JBoss和Apache httpd给出一个构建高可用企业应用集群的解决方案。
方案简介与目的
本方案使用开源JBoss社区的产品搭建一个高可用企业集群环境,负载均衡器位于集群节点之上。通过本方案我们可以体会到企业应用的高可用性主要是因为集群节点之间状态保持同步,即会话复制(Session Replication),而如何进行会话复制则是本书主要论述的主题。我们先给出本方案的架构图:
图-2 方案设计架构