Java EE集群技术初探
越来越多的任务关键型与大规模应用运行在Java EE技术上。有的应用例如银行的或者是记费系统需要越来越高的高可用性(HA),另外一些应用比如像Google或者是Yahoo则需要越来越好的可扩展性。eBay在99年的22小时宕机,造成230万笔交易的中断,影响其股价下跌9.2%。这个示例充分证明了高可用性和可扩展性在今天变得越来越重要。
Java EE的集群技术是为了提供高可用和有容错能力的可扩展服务。但是由于Java EE缺少此方面的规范,所以Java EE的供应商都使用不同的技术来实现集群,为此对开发人员和架构师带来一定的问题,例如:
有集群功能选项的Java EE服务器为什么会那么贵?(可能比没有的要贵10倍)
我的程序按照标准Java EE规范编写,为何不能在集群环境下运行?
为何我的程序在集群环境下运行得更慢?
为何要移植在集群环境下的程序那么复杂?
所以,我们通过探讨Java EE集群环境的实现方式来理解并解决上述问题。
一些基本的概念
在真正开始探讨实现技术之前,我们先来了解一些基本的概念。了解这些概念不仅是理解Java EE集群技术的基础,而且勾勒出了构建集群的不同技术实现的关键点,更易于理解实现。
可扩展性(scalability)
在一些大规模的系统中,不太好预估确切的在线用户数和他们的行为。可扩展性即指系统能够支撑用户数量激增的情况。立马能想到的提高可扩展性(在线并发会话)的办法是在服务器上增加资源(内存、CPU……)。集群技术是解决这个问题的另一途径。集群支持一组服务器从逻辑上作为单独的服务器运行,但共同分担系统负载。
高可用性(high availability)
采用单一服务器解决方案(增加内存、CPU等)来解决可扩展性的问题并非完美,因为系统失败集中于一点(单一服务器)上。任务关键型的应用(银行的或者是计费系统)不能容忍哪怕只有一分钟的宕机。所以需要这些服务在任何时刻都必须可以访问。集群技术是达到这类高可用要求的解决方案,它通过在集群中提供附加的服务器来保证一旦其中的某个服务器宕机时服务的延续性。
负载均衡(load balance)
负载均衡是集群技术中重要的一部分。通过将请求分发到不同的服务器,它提供了可同时获得高可用性和更高性能的服务的方法。简单的负载均衡器可以是一个Servlet或一些插件,复杂的负载均衡器可能是高级的嵌入了SSL加速器的硬件设备。除了分发请求之外,负载均衡器还负责执行一些重要的任务:
“会话持久”用来确保用户会话生命周期在一台服务器上的完整性。
“心跳”来检查失败的服务器。
在某些情况下,负载均衡器需要参与“失败转移”的过程,下文中会提及。
容错(fault tolerance)
高可用环境下的数据不见得肯定是正确的数据。在Java EE集群中,当一个服务器实例宕机(以后统称“失败”)后,服务通过集群中别的服务器依然可用。但是在失败的那台服务器中正在处理的请求也许就不能获取正确的数据了。所以,容错技术可始终保证在特定的错误环境下也能执行正确的行为。
失败转移(Failover)
失败转移是集群当中的另一项实现容错的重要技术。失败转移通过在集群中选择另一节点,将能延续失败节点上的服务。失败转移可通过代码指定或者自动通过底层平台的通信链路进行自动切换。
幂等方法(Idempotent methods)
幂等函数,或幂等方法,是指可以使用相同参数重复执行,并能获得相同结果的函数。这些函数不会影响系统状态,也不用担心重复执行会对系统造成改变。例如,“getUsername()”函数就是一个幂等函数,“deleteFile()”函数就不是。“幂等”是HTTP Session和EJB失败转移中的一个重要概念。
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/BU_BetterYou/archive/2008/05/15/2447922.aspx
分享到:
相关推荐
轻量级Java EE企业应用实战——Struts 2+Spring+Hibernate整合开发电子书123全套.part3.rar
本书内容主要包括三部分,第一部分介绍Java EE开发的基础知识,以及如何搭建开发环境;第二部分详细讲解了JSF RI、EJB 3的Session Bean等Java EE知识;第三部分提供了一个JSF+EJB 3+ JPA整合开发的项目:电子拍卖...
《轻量级Java EE企业应用实战——Struts 2+Spring+Hibernate整合开发电子书3》是一本专注于Java EE轻量级开发技术的专著,它深入探讨了Struts 2、Spring和Hibernate(SSH)这三大流行开源框架的集成与应用。...
《轻量级Java EE企业应用实战——Struts 2+Spring+Hibernate整合开发电子书1》是一本专注于Java EE企业级应用开发的书籍,主要涵盖了Struts 2、Spring和Hibernate这三个流行开源框架的整合应用。这本书对于Java...
《轻量级Java EE企业应用实战——Struts 2+Spring+Hibernate整合开发》是一本深入探讨Java EE企业级应用开发的书籍,尤其关注于轻量级框架的整合使用。Struts 2、Spring和Hibernate,简称SSH,是Java开发中最流行...
经典JAVA EE企业应用实战 基于WEBLOGIC JBOSS的JSF+EJB 3+JPA整合开发.part2
《Java Web开发实践教程——从设计到实现(第2版)》是一本深入探讨Java Web技术的权威指南,尤其适合初学者和有一定基础的开发者。本教程通过PPT的形式,以直观、易懂的方式讲解了从项目规划到实际开发的全过程。在...
轻量级Java EE企业应用实战——Struts 2+Spring+Hibernate整合开发 全套电子书.part2
轻量级Java EE企业应用实战——Struts 2+Spring+Hibernate整合开发 全套电子书.part1
**Java EE编程技术详解** Java EE(Enterprise Edition),也被称为Java 企业版,是Java平台的一个版本,专门针对服务器端应用程序开发。它提供了一个全面的框架来构建分布式、多层的Web应用程序,支持高可用性、可...
这份文档名为《Java EE 框架整合开发入门到实战——Spring+Spring MVC+MyBatis(微课版)课后习题答案.pdf》,它显然是关于Java EE中流行的三个框架整合使用的教程。这三个框架分别是Spring、Spring MVC和MyBatis,...
本书内容主要包括三部分,第一部分介绍Java EE开发的基础知识,以及如何搭建开发环境;第二部分详细讲解了JSF RI、EJB 3的Session Bean等Java EE知识;第三部分提供了一个JSF+EJB 3+ JPA整合开发的项目:电子拍卖...
Java EE(Java Platform, Enterprise Edition)是Oracle公司提供的一个用于构建企业级分布式应用程序的平台,它基于Java技术,为开发人员提供了丰富的API和服务。Java EE技术基础是学习企业级应用开发的重要入门知识...
1. Java EE 7核心概念:介绍Java EE 7的基础架构和核心组件,包括其各个组成部分(如Servlets, JSPs, EJBs, JSFs等)的功能和应用。 2. 新特性介绍:详细解析Java EE 7中新增的特性,例如对WebSocket的支持,为创建...
Java服务集群技术是一种用于构建高可用、高性能、可扩展的应用系统的方法。在现代企业级应用中,服务集群已经成为必备的架构元素,它可以帮助我们解决单个服务器无法应对高并发访问或处理大量数据的问题。本资料...
2. **专业技能**:这部分要突出你的Java编程能力,例如熟练掌握Java SE、Java EE基础,了解Spring框架、MyBatis等。同时,提及对数据库管理(如MySQL)、前端技术(HTML、CSS、JavaScript)的了解也会增加竞争力。 ...
本书内容主要包括三部分,第一部分介绍Java EE开发的基础知识,以及如何搭建开发环境;第二部分详细讲解了JSF RI、EJB 3的Session Bean等Java EE知识;第三部分提供了一个JSF+EJB 3+ JPA整合开发的项目:电子拍卖...
本书内容主要包括三部分,第一部分介绍Java EE开发的基础知识,以及如何搭建开发环境;第二部分详细讲解了JSF RI、EJB 3的Session Bean等Java EE知识;第三部分提供了一个JSF+EJB 3+ JPA整合开发的项目:电子拍卖...