网管联盟 | 网管论坛 | 网管u家 | 网管博客 | 网管软件 | 网管求职 | 小游戏 | 网管搜索 | 网管原创 | 网管聚合 | 网管读摘 | 网管焦点 | 世界素材 | 会员投稿 | 会员中心 
中国网管联盟
Windows Linux Cisco 网络技术 数据库 黑客攻防 DotNet Java PHP 认证 新闻资讯 服务器 存储资讯 网络设备 网管学堂 技术专题 焦点 网吧频道
 当前位置: > bitsCN.com > linux > 系统管理 > 系统管理 > Linux集群与jetspeed(组图)  

Linux集群与jetspeed(组图)

2005-11-30  作者:BitsCN整理  来源:中国网管联盟  点评 投稿 收藏


  本文目的在于分析Jetspeed支持集群的现状。首先介绍了集群计算的背景知识,然后使用tomcat作为例子配置了一个集群,接着分析了jetspeed对集群的支持现状,提出了解决这些问题的办法,最后详细解释了jetspeed保存sesson数据的操作,这将对jetspeed的改造有帮助。
  
  1 、 集群背景介绍
  
  1.1 术语定义
  
  服务软体是b/s或c/s结构的s部分,是为b或c提供服务的服务性软件系统。
  
  服务硬体指提供计算服务的硬件、比如pc机、pc服务器。
  
  服务实体通指服务软体和服务硬体。
  
  客户端指接受服务实体服务的软件或硬件。
  
  1.2 两大关键特性
  
  集群是一组协同工作的服务实体,用以提供比单一服务实体更具扩展性与可用性的服务平台。在客户端看来,一个集群就象是一个服务实体,但事实上集群由一组服务实体组成。与单一服务实体相比较,集群提供了以下两个关键特性:
  
  可扩展性--集群的性能不限于单一的服务实体,新的服务实体可以动态地加入到集群,从而增强集群的性能。
  
  高可用性--集群通过服务实体冗余使客户端免于轻易遇到out of service的警告。在集群中,同样的服务可以由多个服务实体提供。如果一个服务实体失败了,另一个服务实体会接管失败的服务实体。集群提供的从一个出错的服务实体恢复到另一个服务实体的功能增强了应用的可用性。
网管u家u.bitsCN.com

  
  1.3 两大能力
  
  为了具有可扩展性和高可用性特点,集群的必须具备以下两大能力:
  
  负载均衡--负载均衡能把任务比较均衡地分布到集群环境下的计算和网络资源。
  
  错误恢复--由于某种原因,执行某个任务的资源出现故障,另一服务实体中执行同一任务的资源接着完成任务。这种由于一个实体中的资源不能工作,另一个实体中的资源透明的继续完成任务的过程叫错误恢复。
  
  负载均衡和错误恢复都要求各服务实体中有执行同一任务的资源存在,而且对于同一任务的各个资源来说,执行任务所需的信息视图(信息上下文)必须是一样的。
  
  1.4 两大技术
  
  实现集群务必要有以下两大技术:
  
  集群地址--集群由多个服务实体组成,集群客户端通过访问集群的集群地址获取集群内部各服务实体的功能。具有单一集群地址(也叫单一影像)是集群的一个基本特征。维护集群地址的设置被称为负载均衡器。负载均衡器内部负责管理各个服务实体的加入和退出,外部负责集群地址向内部服务实体地址的转换。有的负载均衡器实现真正的负载均衡算法,有的只支持任务的转换。只实现任务转换的负载均衡器适用于支持ACTIVE-STANDBY的集群环境,在那里,集群中只有一个服务实体工作,当正在工作的服务实体发生故障时,负载均衡器把后来的任务转向另外一个服务实体。 中国网管联盟bitsCN.com
  
  内部通信--为了能协同工作、实现负载均衡和错误恢复,集群各实体间必须时常通信,比如负载均衡器对服务实体心跳测试信息、服务实体间任务执行上下文信息的通信。
  
  具有同一个集群地址使得客户端能访问集群提供的计算服务,一个集群地址下隐藏了各个服务实体的内部地址,使得客户要求的计算服务能在各个服务实体之间分布。内部通信是集群能正常运转的基础,它使得集群具有均衡负载和错误恢复的能力。
  
  2 集群配置
   
  从上图可知,由服务实体1、服务实体2和负载均衡器组成了一个集群。服务实体1和服务实体2参与对客户端的服务支持工作,均衡负载器为客户端维护集群的单一影像。集群实体间通过内部的通信网交流信息,这种交流机制一般采用组播协议。负载均衡器通过内部通信网探测各服务实体的心跳信息,服务实体间通过内部通信网完成任务资源的传播。可以看出,配置集群主要由配置服务实体和配置负载均衡器两部分组成。本文使用tomcat 4.12、apache 2.0.43配置集群环境,相关软件的部署图如下:
    网管u家u.bitsCN.com
  服务实体1/2,负载均衡器可以部署在不同的机器上,也可以在同一机器上,本文环境为同一机器。
  
  2.1 准备软件
  
  tomcat是开源servlet \jsp服务器,下载地点http://jakarta.apache.org/ ;
  
  apache 2.0.43 是开源的www服务器,下载地点http://www.apache.org/dist/httpd/binaries/ ;
  
  JavaGroups是一个实现集群服务实体间通信的通信协议,下载地址:http://www.javagroups.com/ ;
  
  Tomcat 会话复制库,基于JavaGroups通信协议,完成集群服务实体间任务执行上下文的复制,下载地址: http://www.filip.net/tomcat/tomcat-javagroups.jar
  
  jk2模块,jk 是mod_jserv的替代者,它是Tomcat-Apache插件,处理Tomcat和Apache之间的通信,在集群配置中充当负载均衡器的作用。JK2是符合apache 2.x系列的新品,下载地址:http://jakarta.apache.org/builds/jakarta-tomcat-connectors/jk2/release/v2.0.2/bin/ 。
  
  2.2 配置负载均衡器
  
  在apache下配置负载均衡器分为三步,注意每次修改httpd.conf和workers2.properties时不要忘了重新启动apache。
  
中国网管论坛bbs.bitsCN.com

  第一步,安装和调试apache
  
  负载均衡器jk2模块是apache www 服务的插件,所以配置负载均衡器就得先安装apache。本文下载的是windows版本 2.0.43,执行setup.exe并回答一些简单问题就可完成apache的任务。值得注意的是,安装并启动apache后如果apache对http://localhost/ 地址没反应,你得修改apache安装路径下htdocs目录下的index.html.xx文件,比如把index.html.en改成index.html。
  
  第二步,安装jk2
  
  把下载到的mod_jk2-2.0.43.dll 改成mod_jk2.dll 放到apache的modules目录下,修改apache的httpd.conf,即在LoadModule foo_module modules/mod_foo.so 行下插入mod_jk2模块的装载信息:
  # Example:
  # LoadModule foo_module modules/mod_foo.so
  #
  LoadModule jk2_module modules/mod_jk2.dll
  
  第三步,配置jk2
  
  jk2的配置全在一个配置文件中,文件名为workers2.properties,和apache 的httpd.conf放在同一个目录下。以下是这个文件的内容:
  #++++++++++++++++++++++++++++++++++++
  # only at beginnin. In production uncomment it out
中国网管论坛bbs.bitsCN.com

  [logger.apache2]
  level=DEBUG
  #shm必须配
  [shm]
  file=D:\Program Files\Apache Group\Apache2\logs\shm.file
  size=1048576
  # 第一个tomcat 的地址
  # Example socket channel, override port and host.
  [channel.socket:tomcat1]
  port=11009
  host=127.0.0.1
  # 定义第一个工作者指向第一个tomcat
  # define the worker
  [ajp13:tomcat1]
  channel=channel.socket:tomcat1
  #第二个tomcat 得地址
  # Example socket channel, override port and host.
  [channel.socket:tomcat2]
  port=12009
  host=10.1.36.123
  # 定义第二个工作者指向第二个tomcat
  # define the worker
  [ajp13:tomcat2]
  channel=channel.socket:tomcat2
  #定义负载均衡器,使其包含两个工作者
  [lb:lb1]
  worker=ajp13:tomcat2
  worker=ajp13:tomcat1
  #指定负载均衡器完成单一地址映射,使得apache 服务所在的uri全部指向 两个#tomcat 上的 root Uri mapping
  [uri:/*] 网管联盟bitsCN@com
  group=lb:lb1
  #++++++++++++++++++++++++++++++++++++++++++
  
  对于jk2模块的负载均衡配置可参见相关站点,值得提及的是jk2的负载均衡还支持权重分配等优秀功能。
  
  2.3 配置tomcat
  
  同属于一个集群下的两个服务实体,要求功能的同一性,所以我们可先安装和配置第一个tomcat,接着拷贝形成第二个tomcat,最后配置第二个tomcat。
  
  2.3.1 安装第一个tomcat
  
  安装tomcat 非常简单,本文就不再描述。我们假设第一个tomcat的安装路径为d:\tomcat1。
  
  拷贝tomcat-javagroups.jar和javagroups.jar到d:\tomcat1\ server\lib 路径下。
  
  2.3.2 配置第一个tomcat
  
  2.3.2.1 配置jk2
  
  tomcat 中的jk2 connector缺省端口为8009,为了在一台机器上运行两个tomcat,修改D:\Tomcat1\conf\jk2.properties,设置jk2 connector的端口为11009,整个文件内容如下:
  
  #++++++++++++++
  channelSocket.port=11009
  #++++++++++++++
  
  2.3.2.2 修改server.conf
  
  首先为了让一台机器上运行两个tomcat,修改server.conf的tomcat 停止指令监听端口: 网管u家bitscn.net
  
  <Server port="8005" shutdown="SHUTDOWN" debug="0"> 改为
  <Server port="11005" shutdown="SHUTDOWN" debug="0">
  
  然后打开JK2 AJP connector ,关闭其它connector,下面是JK2 AJP 1.3的样子,这里已把它的端口改为11009:
  
  <!-- Define a Coyote/JK2 AJP 1.3 Connector on port 8009 -->
  <Connector className="org.apache.coyote.tomcat4.CoyoteConnector"
  port="11009" minProcessors="5" maxProcessors="75"
  enableLookups="true" redirectPort="8443"
  acceptCount="10" debug="0" connectionTimeout="20000"
  useURIValidationHack="false"
  protocolHandlerClassName="org.apache.jk.server.JkCoyoteHandler"
TAGs   组图   服务   集群   实体   均衡   负载   tomcat   配置   地址      
 上一篇:Linux上shmmax参数的设置及含义   下一篇:Linux的环境变量PATH中所带来的问题
Linux集群与jetspeed(组图) 评论:
loading.. 评论加载中…
评论:请自觉遵守互联网相关政策法规,评论不得超过250字。

验证码: 注册用户
本类热门排行:
最新推荐文章:
网管论坛交流: