越来越多的关键应用运行在 J2EE ( Java 2, Enterprise Edition )中,这些诸如银行系统和账单处理系统需要高的可用性( High Availability, HA ),同时像 Google 和 Yahoo 这种大系统需要大的伸缩性。高可用性和伸缩性在今天高速增长的互连接的世界的重要性已经证实了。 eBay 于 1999 年 6 月停机 22 小时的事故,中断了约 230 万的拍卖,使 eBay 的股票下降了 9.2 个百分点。 【J2EE集群详解】 J2EE(Java 2, Enterprise Edition)是企业级应用程序开发的基石,尤其在处理高可用性和伸缩性需求的关键应用中。随着互联网的快速发展,像银行系统、账单处理系统以及大型搜索引擎如Google和Yahoo等,都需要能够应对大量并发用户并保证服务不间断的技术。20世纪90年代末,eBay的一次长达22小时的停机事件就是一个典型的例子,那次事故导致其股票大幅下跌,突显了高可用性和伸缩性的重要性。 J2EE集群是实现这些需求的关键技术。然而,由于J2EE规范本身并不直接支持集群,各个供应商的实现方式各异,为开发者带来了挑战。以下是一些常见问题: 1. 高价的商业J2EE集群产品:集群功能的实现往往涉及复杂的分布式计算、数据同步和故障恢复机制,这增加了开发和维护成本。 2. 单服务器应用无法直接迁移到集群:集群环境需要特定的设计,例如会话复制和状态管理,以确保在多台服务器间的一致性。 3. 集群环境下的性能下降:集群可能会引入额外的通信开销和复杂性,如果不适当优化,可能导致性能降低。 4. 集群应用移植困难:不同的J2EE服务器可能有不同的集群实现,使得跨平台移植变得复杂。 理解这些限制和要素,首先要掌握一些基础概念: - **伸缩性**:系统应能随用户量的增长动态扩展资源,集群通过多服务器共享工作负载来实现这一点。 - **高可用性**:关键应用需要保证服务的连续性,即使单个服务器故障,系统也能继续提供服务。 - **负载均衡**:通过分配请求到多台服务器,实现高可用性和性能提升,负载均衡器还可以执行健康检查和会话粘滞等功能。 - **容错**:当出现错误时,系统仍能保持正确的行为,即使可能导致部分数据丢失。 - **失效转移**:当某个服务器节点失效,请求可以自动转移到其他活跃节点,保证服务不间断。 - **等幂方法**:重复调用不会改变系统状态的方法,对于实现容错和失效转移至关重要。 J2EE集群主要包括负载均衡和失效转移两部分。负载均衡通过分配请求到多个冗余服务器来扩展处理能力;而失效转移则在检测到服务器故障后,将服务切换到备用服务器,以维持服务的持续性。 在J2EE环境中,可以集群的对象包括Web服务器、EJB容器、数据库等。负载均衡和失效转移通常发生在HTTP会话、EJB调用、数据库连接等层面。开发者需要关注如何在代码中实现对这些对象的无状态化处理,以便于集群环境的部署和管理。 J2EE集群是一项复杂但至关重要的技术,它解决了高并发、高可用性和伸缩性的问题,但同时也带来了设计和实施上的挑战。为了充分利用集群的优势,开发者需要深入理解相关概念,以及不同J2EE服务器的集群实现方式,以创建可扩展且可靠的分布式应用程序。
剩余36页未读,继续阅读
- 粉丝: 0
- 资源: 2
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助