| 操作系统 办公 实用知识 设计 开发 WEB开发 移动开发 数据库 软件工程 网管 安全 管理 信息化 答疑 渠道 |
Web应用下的集群基础技术分析-Session故障恢复几乎所有的商用应用服务器都对集群提供支持以达到对应用系统的负载均衡、冗余备份、容错的目的,从而得到最大限度的可用性、可靠性及可伸缩性。集群模式下,一组服务器协同工作,当一个服务器失败时,请求会被透明地转发到备份或者同步处理的服务器上,并不会因此而影响客户的访问。对客户最严重的影响可能是一次失败的请求,如果再次发出请求,即可得到继续的服务。 将应用从一个服务器无故障迁移至另一个服务器,对于带有会话的应用来讲,Session信息在服务器之间的正确传递(即Session复制)是集群的基础。可用于服务器间Session复制的方法很多,选择的因素主要取决于应用程序集群的规模、复制的目标和 Web容器支持的复制策略。复制具有性能成本,包括 CPU 周期(存储在会话中对象的序列化)、网络带宽(网络复制),以及Session持久化时写入磁盘或数据库的成本。用得比较广范的复制方法有:基于内存的复制,基于JDBC的复制及基于文件系统的复制。 基于内存的复制 基于内存的复制方式是参与集群的服务器共享序列化的会话数据副本。实现机制可以是复制所有会话到所有主机中,也可以是在一台主服务器和一台(或更多)备份服务器之间进行复制。前者可提供最大的可用性,实现负载均衡也最容易,但会消耗每个节点的内存及网络带宽从而限制了集群的规模。后者则提供了更好的系统伸缩性能,但增加了故障迁移时负载均衡任务的复杂度,因为它必须能确定另外哪一台(或几台)服务器有这个会话。 基于JDBC的复制方法是序列化会话内容并将它写入数据库。这种方法相当直观,其优点是不仅会话可以故障转移到其他主机,而且即使整个群集失效,会话数据也可以保存下来。基于JDBC复制的缺点是性能成本,数据库事务是昂贵的。此外,虽然它可以在 Web 层很好地伸缩,却可能在数据层产生伸缩问题。如果群集增长到一定程度,扩展数据层以容纳会话数据会很困难或者成本无法接受。 基于以上几种复制方式的特点,从整个集群系统的伸缩性,可用性,可靠性,容错性等综合考虑出发,TongWeb应用服务器为Web应用下Session的故障恢复提供了两种可选方案:基于内存的复制和基于JDBC的复制。 TongWeb上基于JDBC的Session复制 此外,为了提高系统的响应性能,提供对Session的内存Cache功能供用户选择。目前有两种Cache方式:全部Cachea或者不Cache。为了提高系统的可用性,还提供了可视化的界面用于JDBC方式Session复制的配置管理。 基于内存的Session复制的TongWeb应用级集群拓扑结构如图1所示: 在这种方式下,TongWeb通过限制Session复制只能在两个节点之间进行(主服务器和备份服务器)来提高集群系统的吞量以获得更好的伸缩性。如果一个失效,另一个节点会自动将Session数据复制到其它可用的节点上。分两种情况: 2. 当备份节点失效,立即为所有以该节点为备份节点的主节点选择一个备份节点,并复制Session数据。 不参与集群:生成的随机数 + 节点的IP地址和端口的编码 + (节点的会话亲和字,即节点IP和端口的编码)
今日推荐
|
重点推荐
领军企业技术文库
+更多领军技术文库
最新专题
电子杂志订阅
| ||||||||