集群JBoss6 apache httpd-2.2.21集群配置.

apache配置  时间:2021-01-24  阅读:()

JBoss6+apache httpd-2.2.21集群配置

写本教程的动机

本人从事多年javaEE开发和项目管理工作但配置集群服务器机会并不多今天有兴致想实现JBoss集群服务器说干就干。在网上找了很多资料发现都是JBoss4.x的配置示例不适用现在主流的JBoss6.x和7.x有一些区别 自己摸索许久才配置成功希望对有此需求的人有所帮助。

本案例是在win8下测试通过但在l inux环境下的配置也是一样的。本案例并非从网上复制粘贴之作是通过本人精心测试通过的如有错误之处请多谅解

注理论是从网上抄下来的是必须读的不然就不知道为什么

云动xietaijun@al iyun.com 2013.6.25

1.集群概念

集群(Cluster)是一组计算机节点的集合它们作为一个整体向用户提供一组网络资源。一个理想的集群对用户是透明的。用户由单一入口访问集群的资源从来不会意识到集群中的节点。在他们看来集群是一个系统而非多个计算机系统。集群还应该支持随意增加和减少集群系统的节点而这同样不会影响到用户的访问。

1.1.集群分类

习惯上把集群分为高可用(High Avai labi l ity 简称HA )集群和高性能计算(HighPerfermance Computing简称HPC)集群两类。

1) HA集群的目标是提高系统的可使用性(avai labi l ity),即可靠性(rel iabi l ity)和可维护性(maintainabi l ity) 。请不要将集群中的可使用性(avai labi l ity)与UE和交互设计中的可用性(Usabi l ity)混淆。 HA集群的核心是防止单点失效这一般是通过失败转移来实现的 即在一个节点失效后由另一个节点接替服务。不丢失用户状态。 HA集群的其他主要特性还包括负载均衡、 session同步等。我们使用的SQL Server数据库的双机热备和Oracle的RAC都属于HA集群。

2) HPC集群采用并行计算技术提供超大规模计算和存储能力多数超级计算机都是HA集群。这不是我们关注的集群。

1.2. Jboss集群架构

Jboss集群是HA集群。Jboss集群有2种架构。一是客户端拦截器(Cl ient-side interceptor)架构一是负载均衡器(Load balancer)架构。客户端拦截器架构适于用C/S结构负载均衡器架构适用于B/S结构。本文只叙述负载均衡器架构的Jboss集群。

负载均衡器架构由负载均衡器和n个集群节点组成。每个节点是一个Jboss服务器实例。负载均衡器是全局唯一的前置机全部用户请求都发到负载均衡器 由其转发到各节点。当负载均衡器发现一个节点失效后会将请求转发到另一个节点上从而保证服务得以延续。负载均衡器同时负责加权静态负载均衡调度。总之负载均衡器的健康程度决定了集群的全局健康度负载均衡器失败将导致集群全部失效。这是前置机架构集群的主要潜在问题。

Jboss的负载均衡器架构集群实际是由Tomcat的HTTP集群实现的。 Jboss有自己的负载均衡器但效果不佳 官方文档没有介绍几乎没有人使用。一般情况下都是采用apache+mod_jk作为负载均衡器。下文叙述的都是基于这种架构。mod_jk是apache的一个插件负责apache与tomcat之间的通讯是jboss集群(tomcat集群)的关键。

1.3.负载均衡的粒度

Jboss支持如下类型的cluster EJB、web、 JNDI、 JMS我们主要了解web cluster。Webcluster实际上可以划分为两个话题负载均衡(load balance)和状态同步。它们是互相独立的单独配置。负载均衡的概念比较简单重要的是负载均衡的粒度。可以选择针对每个request的均衡或者是针对每个用户的均衡。选择不同的粒度需要不同的状态同步方式。

1.3.1.基于re q ue st的负载均衡

该种方式下负载均衡器(load balancer)会根据各个node的状况把每个http request进行分发。使用这样的均衡策略就必须在多个node之间复制用户的session实时保持整个cluster的用户状态同步这种操作被称为session复制(session repl ication)。 Jboss的实现原理是使用拦截器(interceptor) 根据用户的同步策略拦截request做同步处理后再交给server产生响应。

该方法的优点是客户不会被绑定都具体的node只要还有一个node存活用户状态都不会丢失 cluster都能够继续工作。缺点是node之间通信频繁响应速度有影响多并发、高频操作的情况下性能下降比较厉害。

1.3.2.基于用户的负载均衡

该种方式下 当用户发出第一个request后负载均衡器动态的把该用户分配到某个节点并记录该节点的jvm路由 以后该用户的所有request都会被绑定这个jvm路由用户只会与该server发生交互这种策略被称为粘性session(session sticky)。该方法的优点是响应速度快多个节点之间无须通信。缺点也很明显某个node死掉以后它负责的所有用户都会丢失session。

粘性的session依赖JVM来实现只要session开始工作那么负载均衡将永远把相同的session存放于同一个机器上举个例子来说,有一个I D为aaaXXX的session永远放在A机器的JVM-A上而bbbXXX的session用于放在B机器的JVM-B上。

使用这种技术的是比较可靠的如果A机器宕机则可以从B机器上取得我们需要的session而使用者并无从查觉另外使用粘性session是高效率的只有session发生变更时才需要重写到服务器。

每个用户会绑定都某个节点上进行交互。这种绑定是如何完成的呢原来apache把客户分发到节点后该节点会在用户的session id后面加上此节点的路由名称变成这个样子Efdfxxd98daja87daj76da2dka**,server1有了这个标志就能分辨该session属于哪个节点。

2. Apache配置

2.1下载apache和mod_jkapache下载地址 http://httpd.apache.org/download.cgi

本案例使用的版本 httpd-2.2.21-win32-x86-openssl-0.9.8r.msimod_jk下载地址http://www.apache.org/dist/tomcat/tomcat-connectors/jk/binaries/windows/本案例使用的版本 tomcat-connectors-1.2.37-windows-i386-httpd-2.2.x.zip

重要提示apache httpd的版本和mod_jk的版本要一致例如在本例中httpd的版本是2.2.21所以对应的mod_jk版本也使用了对应2.2.x的版本。

2.2安装apache

建议将apache安装到非系统盘本示例安装到D:\Apache2.2目录下因为如果安装到

C:\Program Fi les (x86)下时修改或新建文件时需要管理员权限非常麻烦。安装很简单一直下一步提示输入域名时输入127.0.0.1安装完了之后会自动注册成为windows服务在右下角的任务栏上可以看到控制器可以启动/停止/重启服务器。

启动服务之后在浏览器中输入http://localhost回车看到“It works!”表示服务器启动成功默认端口是80。

2.3 mod_jk布署

解压tomcat-connectors-1.2.37-windows-i386-httpd-2.2.x.zip文件将其中的mod_jk.so文件复制到d:\Apache2.2\modules目录下。

2.4修改和新建配置文件重点

修改d:\Apache2.2\conf\httpd.conf文件增加如下两行代码

LoadModulejk_module modules/mod_jk.so

Include conf/mod_jk.conf

在d:\Apache2.2\conf\目录下新建如下三个文件mod_jk.confworkers.propertiesuriworkermap.propertiesm o d_j k.co n f文件内容

----------------------------------------------------------------------------

#Loadmod_jk module

#Specifythefi lename of the mod_jkl ib

LoadModulejk_module modules/mod_jk.so

#Where tofind workers.properties

JkWorkersFi le conf/workers.properties

#Whereto putjk logs

JkLogFi le logs/mod_jk. log

#Set thejk log level [debug/error/info]

JkLogLevel i nfo

#Selectthe log format

JkLogStampFormat "[%a%b%d%H:%M:%S%Y]"

#JkOptionsindicatestosendSSK KEYSIZE

JkOptions+ForwardKeySize+ForwardURICompat -ForwardDirectories#JkRequestLogFormat

JkRequestLogFormat "%w%V%T"

#Mountyourappl ications

JkMount/* loadbalancer

#Youcan use externalfi lefor mount points.

#Itwi l l becheckedforupdateseach60 seconds.

#Theformatof the fi le is:/url=worker

#/examples/*=loadbalancer

JkMountFi le conf/uriworkermap.properties

#Add shared memory.

#This directive is presentwith 1.2.10and

#laterversions of mod_jk,and is neededfor

#for load balancingtoworkproperly

JkShmFi le logs/jk.shm

#Addjkstatusformanaging runtimedata

<Location/jkstatus/>

JkMount status

Order deny,al low

Denyfromal l

Al lowfrom 127.0.0.1

</Location>

----------------------------------------------------------------------------

这里的JkMount/* loadbalancer的意思是所有的请求都有loadbalancer来处理负载均衡。workers.properties文件内容

#Define l ist of workersthatwi l l be used

#for mapping requestsworker. l ist=loadbalancer,status

#Define node1

#modifythe hostasyourhost IPorDNSname.worker.node1.port=8009worker.node1.host=127.0.0.1worker.node1.type=ajp13worker.node1. lbfactor=1worker.node1.cachesize=10

#Load-balancing behaviourworker. loadbalancer.type=lbworker. loadbalancer.balance_workers=node1worker. loadbalancer.sticky_session=1

#worker. l ist=loadbalancer

#Statusworkerformanaging load balancerworker.status.type=status

----------------------------------------------------------------------------

这里的worker. l ist指定哪些worker是可用的。node1是自定义的名称但要与后面的jboss的配置文件对应。一个node就是一个服务器这里为了示例只配置了一个服务器。如果您有第二个服务器可以配置一个node2例如worker.node2.port=8009worker.node2.host=192.168.0.155worker.node2.type=ajp13worker.node2. lbfactor=1worker.node2.cachesize=10

然 后 在 worker. loadbalancer.balance_workers 后 面 加 入 node2 即 可 worker. loadbalancer.balance_workers=node1,node2

对于node的命名规则是worker.节点名.xxxx。所以上述文件定义了两个节点 node1和node2。所有需要负载均衡的节点都必须在worker. loadbalancer.balanced_workers参数中列举出来。worker. loabalancer.sticky_session=True表示当前使用的粘连session要知道粘连session的具体情况可以查看1.3.2worker. loadbalancer.sticky_session_force=False表示如果与用户绑定的server连接不上时自动转向别的server。sticky_session=true表示某个请求始终由当前Tomcat处理不会转移到其他Tomcat上。sticky_session_force=false表示当前Tomcat挂掉的时候 自动将Session复制到其他Tomcat上。如果将sticky_sessio n_force设置为true当你关闭一台Tomcat并刷新网页将得到503错误。但设置为fa lse关闭一台Tomcat并刷新网页被关闭的那台Tomcat上的Session会被自动复制到其他Tomcat上系统继续正常运行。uriworkermap.properties文件内容

此文件内容可以为空根据需求可以加入类似如下代码

#所有请求都由loadbalancer这个server处理

/*=loadbalancer

#所有包含jkstat us请求的都由stat us这个se rve r处理

#/jkstatus=jkstatus

#这里的"!”是“非”的意思。

/*.gif=loadbalancer

/*.jpg=loadbalancer

/*.png=loadbalancer

/*.css=loadbalancer

/*.js=loadbalancer

/*.htm=loadbalancer

/*.html=loadbalancer

配置到此请重新启动apache服务器点击任务栏上的服务器能够正常启动说明到此处的配置是成功的。如果服务器启动失败请按上诉步骤重试。apache重启成功之后在浏览器中访问 http://localhost 回车 如果提示“ServiceTemporari ly Unavai lable”说明配置是成功的。因为我们已经让apache变成了分发服务器将请求分发给了jboss服务器但jboss服务器我们还没有配置。

3. JBoss配置

JBoss下载地址 http://www.jboss.org/jbossa s/downloads

本案例使用的版本 jboss-as-distribution-6.0.0.Final .zip

3.1安装J B os s

JBoss不需要安装 只需将zip文件解压到一个目录即可。本示例解压到

D:\jboss-6.0.0.Final目录下。 JBoss的默认端口是8080。

3.2修改配置文件

修改D:\jboss-6.0.0.Final\server\al l\deploy\jbossweb.sar\server.xml文件

将<Engine name="jboss.web" defaultHost="localhost">改为<Engine name="jboss.web"defaultHost="localhost" jvmRoute="node1"> node1是在workers.properties文件中定义的第一个负载均衡服务器。

修改D:\jboss-6.0.0.Final\server\al l\deploy\jbossweb.sar\META-INF\jboss-beans.xml文件增加如下代码

<property name="useJK">true</property>

<property name="useSessionPassivation">true</property>

<property name="passivationMaxIdleTime">-1</property>

<property name="passivationMinIdleTime">-1</property>

3.3 启动Jboss集群

先启动负载均衡器apache然后启动各JBoss节点。各jboss节点的启动顺序没有要求。双击D:\jboss-6.0.0.Final\bin\run.bat即可启动JBoss服务器。

此时在浏览器中输入http://localhost回车我们发现显示的是JBoss的欢迎界面。因为

Apache负责将请求分发到各个JBoss服务器实际访问的是JBoss服务器中部署的项目。

新注册NameCheap账户几天后无法登录原因及解决办法

中午的时候有网友联系提到自己前几天看到Namecheap商家开学季促销活动期间有域名促销活动的,于是就信注册NC账户注册域名的。但是今天登录居然无法登录,这个问题比较困恼是不是商家跑路等问题。Namecheap商家跑路的可能性不大,前几天我还在他们家转移域名的。这里简单的记录我帮助他解决如何重新登录Namecheap商家的问题。1、检查邮件让他检查邮件是不是有官方的邮件提示。比如我们新注册账户是需...

Hostodo,美国独立日特价优惠,四款特价VPS云服务器7折,KVM虚拟架构,NVMe阵列,1核512M内存1Gbps带宽3T月流量,13.99美元/月,赠送DirectAdmin授权

Hostodo近日发布了美国独立日优惠促销活动,主要推送了四款特价优惠便宜的VPS云服务器产品,基于KVM虚拟架构,NVMe阵列,1Gbps带宽,默认分配一个IPv4+/64 IPv6,采用solusvm管理,赠送收费版DirectAdmin授权,服务有效期内均有效,大致约为7折优惠,独立日活动时间不定,活动机型售罄为止,有需要的朋友可以尝试一下。Hostodo怎么样?Hostodo服务器好不好?...

青果网络-618阿里云,腾讯云特惠优惠折上折!

官方网站:点击访问青果云官方网站活动方案:—————————–活动规则—————————1、选购活动产品并下单(先不要支付)2、联系我司在线客服修改价格或领取赠送时间3、确认价格已按活动政策修改正确后,支付订单,到此产品开设成功4、本活动产品可以升级,升级所需费用按产品原价计算若发生退款,按资源实际使用情况折算为产品原价再退还剩余余额! 美国洛杉矶CN2_GIACPU内存系统盘流量宽带i...

apache配置为你推荐
免费个人网站制作如何制作个人网站?要钱吗?租车平台哪个好租车哪个平台最好?要稳定的p图软件哪个好用美图P图软件哪个好,你们用哪个传奇类手游哪个好什么传奇类手游好玩不坑钱?机械表和石英表哪个好自动石英表与全自动机械表哪个好二手车网站哪个好想买台二手车,哪个二手车网站靠谱手机音乐播放器哪个好手机音乐播放器什么的好?无纺布和熔喷布口罩哪个好无纺布除了做尿布湿口罩这些,还有其他什么用处吗?电陶炉和电磁炉哪个好电磁炉和电陶炉买哪个?dnf魔枪士转职哪个好dnf平民魔枪士转什么好
赵容 踢楼 vultr美国与日本 外国服务器 vmsnap3 论坛空间 魔兽世界台湾服务器 网站挂马检测工具 ibox官网 网站cdn加速 股票老左 umax120 免费网页申请 流媒体加速 吉林铁通 江苏双线服务器 yundun web服务器是什么 独享主机 美国盐湖城 更多