集群中使用负载均衡技术已经是大家所熟知的事情了,那么,这两者的关系式如何发展而来的呢?这就让我们一起来看看吧。首先我们来说下我们的系统设计需求,以及集群的概念,然后是对负载均衡的解释。
Tomcat5自带一个基于规则的负载均衡应用。根据两种负载均衡策略(扩展自规则API,分别是round-robin和random算法)来重定向进入的请求。讲述运行在集群环境中的样例Web应用的性能评测。通过负载测试工具JMeter模拟多个Web用户的方式来研究负载均衡机制。
◆大型系统的设计
企业级的Web门户应用必须提供可升级能力(scalability)和高可用性(HA),在同一个网站下为数以百万计的用户提供服务。可升级是系统可以通过增加服务器来支持更多的数量的用户。高可靠性是系统提供基本的冗余能力。在集群中的某个成员失效时,其他成员能透明的接替处理对Web服务的请求。在集群的环境中部署一个Web门户应用能提供门户网站需要的可升级和高可用性的能力。基本上,集群的主要目的是防止某些站点出现当机的问题,应付系统的单点失效。
大型系统的设计目的是在企业应用环境中提供稳定的服务,确保最少的当机时间和最大的可升级能力。运行的不是单一的服务器,有多个协作服务器也同时在运行。为了达到可升级的能力,集群能任意增加机器数量,而为了最少的当机时间,集群中每一个组件都是可冗余的。大型系统的主要因素就是集群,包含负载均衡、容错、session状态持久化等特性。在集群中,通常负载均衡器(硬件或软件)布置在应用服务器的前面。这些负载均衡器通过使用重定向Web交易到相应的集群成员来在集群的节点内分发负载,并且在同时检查集群内是否有服务器失效。
◆集群
集群的定义好比一组应用服务器透明的运行J2EE应用,就象在一台机器上执行一样。有两种方式的集群:垂直缩放和水平缩放。垂直缩放可以通过提高单台机器上的运行服务的数量来达到,水平缩放就要提高集群内机器的数量。水平缩放比垂直缩放更可靠。使用垂直缩放,机器的处理能力、CPU的使用情况和JVM堆内存配置都是决定应该在这台机器上运行多少的服务器实例的主要因素(众所周知的server-to-cpu比率)。
J2EE集群内的服务器一般使用三种配置选项的一种:
独立(independent),每个服务都有属于自己的一份应用程序文件的拷贝;
共享文件系统(sharedfilesystem),集群内所有的服务器拥有一个共同的存储设备,所有服务器的应用文件都是从该设备取得;
第三方的配置方法(managed),有一台管理服务器控制对应用内容的访问,通过"pushing“相应的应用内容到管理服务器作为响应。管理服务器能保证集群中所有的成员的应用有效。当部署应用时,所有的服务器都会更新,而反部署时,所有的服务器都会将应用删除。
集群可以在J2EE应用的各个层次使用,包括数据层。一些数据库提供商提供集群数据库,支持多个数据库服务器中的数据复制、客户透明访问(servlet容器或者应用服务器无须知道从那个数据库服务器中取的数据)。JDBC集群的例子是Oracle9i’sRealApplicationClusters(RAC)和集群JDBC(C-JDBC)。RAC支持数据库连接的失败重启、透明变更JDBC连接、请求到一台恢复后的数据库节点。C-JDBC是一个开放源的数据库集群,允许Web应用通过JDBC透明的访问数据库集群。实现数据库节点内的负载均衡和失败重启。
发表评论