Java EE集群技术初探——第一部分(对一些术语的解释)

 
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 失败转移中的一个重要概念。
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值