集群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服务器中部署的项目。

速云:深圳独立服务器,新品上线,深港mpls免费体验,多重活动!

速云怎么样?速云是一家国人商家。速云商家主要提供广州移动、深圳移动、广州茂名联通、香港HKT等VDS和独立服务器。目前,速云推出深圳独服优惠活动,机房为深圳移动机房,购买深圳服务器可享受5折优惠,目前独立服务器还支持申请免费试用,需要提交工单开通免费体验试用,次月可享受永久8折优惠,也是需工单申请哦!点击进入:速云官方网站地址活动期限至 2021年7月22日速云云服务器优惠活动:活动1:新购首月可...

Dataideas:$1.5/月KVM-1GB/10G SSD/无限流量/休斯顿(德州)_主机域名

Dataideas是一家2019年成立的国外VPS主机商,提供基于KVM架构的VPS主机,数据中心在美国得克萨斯州休斯敦,主机分为三个系列:AMD Ryzen系列、Intel Xeon系列、大硬盘系列,同时每个系列又分为共享CPU和独立CPU系列,最低每月1.5美元起。不过需要注意,这家没有主页,你直接访问根域名是空白页的,还好他们的所有套餐支持月付,相对风险较低。下面以Intel Xeon系列共...

LOCVPS洛杉矶CN2线路KVM上线,洛杉矶/香港云地/香港邦联7折

LOCVPS发来了新的洛杉矶CN2线路主机上线通知,基于KVM架构,目前可与香港云地、香港邦联机房XEN架构主机一起适用7折优惠码,优惠后最低美国洛杉矶CN2线路KVM架构2GB内存套餐月付38.5元起。LOCPVS是一家成立较早的国人VPS服务商,目前提供洛杉矶MC、洛杉矶C3、和香港邦联、香港沙田电信、香港大埔、日本东京、日本大阪、新加坡、德国和荷兰等机房VPS主机,基于KVM或者XEN架构。...

apache配置为你推荐
集成显卡和独立显卡哪个好集成显卡和独立显卡是什么区别呢哪个好?迈腾和帕萨特哪个好一汽迈腾和上海大众帕萨特哪个好电热水器和燃气热水器哪个好电热水器和燃气热水器哪个好?法兰绒和珊瑚绒哪个好法兰绒和珊瑚绒哪个好被套好压缩软件哪个好安卓手机哪一款解压缩软件比较好用?谢谢!电视直播软件哪个好电视直播软件安卓tv版哪个好用ps软件哪个好Photoshop哪个软件好用点?尼康和佳能单反哪个好佳能和尼康哪个好车险哪个好购买车险哪家好清理手机垃圾软件哪个好什么手机清理软件最好?
godaddy域名解析 2017年黑色星期五 tightvnc typecho 免费ftp空间申请 193邮箱 建立邮箱 seednet 卡巴斯基是免费的吗 环聊 沈阳主机托管 starry net空间 石家庄服务器托管 免费蓝钻 中国电信宽带测速 谷歌搜索打不开 tracker服务器 美国asp空间 海外加速 更多