J2EE 高并发体系详解--数据库备份方式

本文详细介绍了J2EE集群产品中通过JDBC备份会话数据到关系数据库及内存复制两种实现方式,探讨了各自优缺点,并提到了JavaGroups在集群通信中的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

数据库备份方式

几乎所有的 J2EE 集群产品都允许选择将你的会话对象通过 JDBC 备份到关系数据库中。如图 7 所示,这种方式可以让服务器实例非常简单的在正确的时间序列化会话内容并写到数据库中。当发生会话转移时,另一台可用的服务器接过已失效的服务器工作,从数据库中恢复所有的会话状态。序列化对象是关键点,它使得内存会话数据可以持久化和传输。要了解更多有关 Java 对象序列化知识,请参考 http://java.sun.com/j2se/1.5.0/docs/guide/serialization/index.html 


图 7   备份会话数据到数据库
由于数据库交易是非常昂贵的,这种方法主要缺点是当在会话中保存大量的或大的对象时限制了伸缩性,大多数使用数据库会话持久化的服务器产品都提倡尽量减少用 HTTP 会话存储对象,但这限制了你的应用程序的架构和设计,特别是你要使用 HTTP 会话缓存用户数据时。
数据库的方式也有一些优点:
l      简单,容易实现。分离的请求处理和会话备份处理使集群更好管理和健壮。
l      会话可以失效转移到任何一台服务器,因为数据库是共享的。
l      当整个集群失效时,会话数据依旧幸免。

内存复制方式

因为性能的原因,一些 J2EE 服务器( Tomcat , Jboss , WebLogic , WebSphere )提供了另一种实现:内存复制
 

图 8   对会话状态进行内存复制
基于内存的会话持久化将会话信息保存在一台或是多台备份服务器中,而不是保存数据库中(如图 8 )。这种方式因为性能高而非常流行。同数据库方式相比,直接在原服务器和备份服务器之间网络通信是非常轻量的。同时注意在使用方式中,数据库方式中的“恢复”阶段是不需要的,因为在备份后,所有会话数据都已经存在备份服务器的内存中了,已经可以处理请求。
“ Java Groups ”是当前 Tomcat 和 Jboss 集群所使用的通信层。 Java Groups 是用于实现可靠组通信和管理的工具包。它提供了诸如“组成员协议”和“消息广播”等核心特性,这些都对集群的工作非常有用。有关 Java Groups 的信息,请参考: http://www.jgroups.org/javagroupsnew/docs/index.html 

   原创文章@java进阶网 转载请标明出处: http://www.javady.com/index.php/411.html 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值