Web Application Architecture | |||||
WebSphere Application Server应用实践 | |||||
WebSphere Application Server(以后简称WAS)是IBM WebSphere产品系列的旗舰产品,它适用于大型企业 IT系统。 | |||||
搭建一个高可用性(HA)的应用系统并不是那么简单。 | |||||
需要考虑负载均衡,网络流量,灾难恢复等。 | |||||
一种解决方案是构建多个WAS计算单元,也就是多台WAS服务器构成一个集群。 | |||||
如下图,4个WAS计算单元,2个DB计算单元,2个HTTP Server节点,构成1个企业级WAS系统。 | |||||
当然,根据企业的规模,还可以添加负载均衡器,Standby节点,存储设备,以及其他应用系统。 | |||||
我们把焦点集中在多个WAS单元的协同作业上。 | |||||
| |||||
多个WAS协同工作方式有不同方案。 | |||||
1 | HttpSession共享,即1个用户的会话,可以被多个WAS访问。 | ||||
该方案需要WebSphere Application Server Network Deployment版。 | |||||
具体的实现方式由2种 | |||||
1 | Session持久化,即将Session保存在数据库中。 | ||||
2 | Memory to Memory Replication,将Session序列化,并通过网络同步到其他WAS | ||||
该方案优点在于当1台WAS出现问题时,用户的会话数据不会丢失,实现了高可用性。 | |||||
但是它的缺点却是致命的,即系统维护的高复杂性。你必须考虑系统升级时各接口系统的兼容性。 | |||||
并且,和所有产品一样WAS的初期版本(X.0版)会有bug,在该方案里,这种bug是很难判定的。 | |||||
2 | HttpSession非共享,即1个用户的会话,只能在1台WAS机器上存在。 | ||||
这个方案需要一个负载均衡器,当一个用户登陆时,负载均衡器会将他指定到一个固定的WAS上。 | |||||
以后用户的所有操作都会在那台WAS上进行。 | |||||
该方案的缺点是,在发生异常时,用户会话会丢失。 | |||||
但,它的优势是配置简单,只需要WebSphere Application Server Base版。 | |||||
并且,WAS发生系统崩溃几率是很小的。 | |||||
一般来说,选择第2方案是很明智的。 |