`
cwh643
  • 浏览: 128035 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
文章分类
社区版块
存档分类
最新评论

Window上配置JBoss集群

阅读更多
原创文章,欢迎转载,转载时务必注明原文地址及作者

一.安装前的准备
   1.JDK1.5 (jdk1.5.0_18)
   2.JBOSS4.2 (jboss-4.2.3.GA)
   3.Apache2.0 (apache_2.0.63-win32-x86-no_ssl.msi)
   4.mod_jk (mod_jk-1.2.28-httpd-2.0.52.so)

二.安装Apache
   双击运行 apache_2.0.63-win32-x86-no_ssl.msi 安装Apache2.0,无需任何配置
   下面步骤中提到的[APACHE_HOME]就是指这里安装Apache2.0的根目录

三.配置负载平衡mod_jk
   1.修改 APACHE_HOME/conf/httpd.conf 文件,在文件的最后添加下面内容:
# Include mod_jk's specific configuration file 
Include conf/mod-jk.conf

   2.在 APACHE_HOME/conf/ 目录下新建 mod-jk.conf 文件,在文件中添加下面内容:
# Load mod_jk module 
# Specify the filename of the mod_jk lib 
LoadModule jk_module modules/mod_jk.so 

# Where to find workers.properties 
JkWorkersFile conf/workers.properties 

# Where to put jk logs 
JkLogFile logs/mod_jk.log 

# Set the jk log level [debug/error/info] JkLogLevel info 

# Select the log format 
JkLogStampFormat    "[%a %b %d %H:%M:%S %Y]" 

# JkOptions indicates to send SSK KEY SIZE 
JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories 

# JkRequestLogFormat 
JkRequestLogFormat "%w %V %T" 

# Mount your applications 
JkMount /SessionSample/* loadbalancer 

# You can use external file for mount points. 
# It will be checked for updates each 60 seconds. 
# The format of the file is: /url=worker 
# /examples/*=loadbalancer 
JkMountFile conf/uriworkermap.properties 

# Add shared memory. 
# This directive is present with 1.2.10 and 
# later versions of mod_jk, and is needed for 
# for load balancing to work properly 
JkShmFile logs/jk.shm 

# Add jkstatus for managing runtime data 
<Location /jkstatus/> JkMount status Order deny,allow Deny from all 
Allow from 127.0.0.1 
</Location>

   注意: 1. [mod_jk.so]必需跟 APACHE_HOME/modules/目录下的mod_jk的文件名一致
         2. [/SessionSample/* loadbalancer]说明是对URL为 /SessionSample 下的所有请求使用负载平衡

   3.在 APACHE_HOME/conf/ 目录下新建 uriworkermap.properties 文件,在文件中添加下面内容:
# Simple worker configuration file
# Mount the Servlet context to the ajp13 worker
/jmx-console=loadbalancer
/jmx-console/*=loadbalancer
/web-console=loadbalancer
/web-console/*=loadbalancer

   注意: 这里是通过配置文件来指定URL(/jmx-console,/web-console)也使用负载平衡

   4.在 APACHE_HOME/conf/ 目录下新建 workers.properties 文件,在文件中添加下面内容:
# Define list of workers that will be used
# for mapping requests
worker.list=loadbalancer,status

# Define Node1 
worker.node1.port=8009
worker.node1.host=192.168.1.43
worker.node1.type=ajp13
worker.node1.lbfactor=1
worker.node1.cachesize=10

# Define Node2 
worker.node2.port=8009
worker.node2.host=192.168.1.17
worker.node2.type=ajp13
worker.node2.lbfactor=1
worker.node2.cachesize=10

# Load-balancing behaviour  
worker.loadbalancer.type=lb
worker.loadbalancer.balance_workers=node1,node2  
worker.loadbalancer.sticky_session=0

# Status worker for managing load balancer  
worker.status.type=status

   注意: 1.这里的工作节点命名必需符合[worker.节点名称.属性]的命名规则
         2.worker.loadbalancer.sticky_session设定为'1'时将使用会话粘滞,为'0'时不使用会话粘滞

四.配置JBOSS集群
   1.修改 JBOSS_HOME/server/all/deploy/jboss-web.deployer/server.xml 文件中节点<Engine>,添加 jvmRoute 的属性
<Engine name="jboss.web" defaultHost="localhost" jvmRoute="node1">
...
</Engine>

   注意: 这里的节点名称[node1]必需和 APACHE_HOME/conf/workers.properties 文件中定义的节点名称相一致

   2.修改 JBOSS_HOME/server/all/deploy/jboss-web.deployer/META-INF/jboss-service.xml 文件中名字为UseJK节点<attribute>
...
<attribute name="UseJK">true</attribute>
...


五.配置JBOSS中发布在All下的应用
   1.修改应用的web.mxl,在节点<web-app>中添加<distributable/>,如下面内容:
<?xml version="1.0"?> 
<web-app  xmlns="http://java.sun.com/xml/ns/"Whats_new_in_JBoss_4-J2EE_Certification_and_Standards_Compliance"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
          xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee 
                              http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" 
          version="2.4">
    <distributable/>
    <!-- ... -->
</web-app>

   2.新建jboss-web.xml文件,并添加下面内容:
<jboss-web>
    <replication-config>
        <replication-trigger>SET_AND_NON_PRIMITIVE_GET</replication-trigger>
        <replication-granularity>SESSION</replication-granularity>
        <replication-field-batch-mode>true</replication-field-batch-mode>
    </replication-config>
</jboss-web>

   注意: replication-trigger元素决定用什么触发一个会话复制(或什么时候会话被认为是 dirty 的)。它有四个选项:
         •  SET: 在这个选项下,只有在会话里设置了属性,会话才被认为是 dirty。如果你的应用程序总把改变的写回到会话里,从性能角度来讲这个选项可能是最优化的。如果只从会话里取出一个对象而不把它写回到会话里,对这个对象的修改将不会被复制。
         •  SET_AND_GET: 如使用这个策略,所有 get 或 set 的属性都会被标记为 ditry。如果从会话里取出一个对象并修改它,但没有写回到这个会话里,这些修改也将被复制。这个选项对性能有比较大的影响。
         •  SET_AND_NON_PRIMITIVE_GET: 这个策略和 SET_AND_GET 相似,除了只有非基本(non-primitive)get 操作被当作 dirty。例如,http 会话请求可能从属性里取出一个非基本对象实例,然后修改了这个实例。如果我们没有指定非基本 get 应该考虑为 dirty,这个修改就不会正确地被复制。这个选项是缺省值。
         •  ACCESS: 这个选项表示,只要会话被访问,就把会话标记为 ditry。因为在每个 HTTP 请求的过程中,会话都会被访问,所以会话每次都会被复制。会话实例里的时间戳也会相应地更新。由于复制并没有包括时间戳,其他群集节点的时间戳可能不会被更新。如果 HTTP 请求没有取出或修改任何会话属性,其他节点的会话就可能会先于活动节点过期。当设置了这个选项,会话的时间戳将在所有群集节点中同步。注意采用这个选项对性能影响很大,需要小心行事。
         replication-granularity 元素控制复制单位的大小。支持的选项包括:
         •  SESSION: 复制基于每一会话实例。只要当调用 snapshot manager 时它被认为有修改,整个会话对象都将串行化。
         •  ATTRIBUTE: 复制仅针对于会话里的 ditry 属性加上某些会话数据,如 lastAccessTime。对于承载大量数据的会话,这个选项可以提高复制性能。
         •  FIELD: 复制仅针对于会话属性对象里的数据字段(后面会有更多内容)。
         replication-field-batch-mode 指出你是否在每个 HTTP 请求之间进行批量更新。它的缺省值是 true

六.启动集群
   1.运行JBOSS_HOME/bin/run.bat,启动JBOSS服务器(node1)
run.bat -c all -b 192.168.1.43

   注意: 默认运行run.bat是启动default,要运行all必需使用-c all,另外在4.2的版本以后由于使用了安全机制,默认使用127.0.0.1的IP,所以必须使用-b IP地址来绑定对外公开的IP
   2.启动Apache2.0
   注意: 一般默认是开机自动启动,修改后重启就可以了,如果没有自动启动,可以在开始,程序中手动启动就可以了
2
0
分享到:
评论

相关推荐

    apache+jboss集群参考

    apache+jboss集群参考,参考介绍集群实现办法

    jboss_chhh

    JBoss AS提供了一整套企业级的服务,包括但不限于EJB容器、JMS服务、事务管理、安全管理和集群支持等。 ### 安装说明 #### 基本安装步骤 1. **下载**: 从官方站点下载适合当前操作系统版本的JBoss AS安装包。 2. *...

    JBoss_AS7+JBoss_Tools+Eclipse3.7集成介绍

    同时,JBoss AS7 还具备集群和负载均衡的能力,可以构建高可用性和可扩展性的分布式系统。 【JBoss Tools 知识点】 JBoss Tools 是一组专为 JBoss 开发者设计的 Eclipse 插件,它极大地提升了基于 JBoss 平台的...

    This is a bas file to close any window with just it’s capti

    2. **API调用**:如果`WScript.Shell`不支持直接关闭窗口,可能需要使用API函数,如`FindWindow`找到具有特定标题的窗口句柄,然后调用`CloseWindow`或`PostMessage`来关闭它。这需要了解Windows API的基本用法,并...

    J2ee开发环境配置(weblogic)

    因此,如果在Tomcat或JBoss上能正常运行的JSP程序在WebLogic 8上出现问题,可能就是这个原因。为了解决这个问题,可以选择升级WebLogic到9.2版本,或者将项目设置为使用J2EE 1.3。 2. **JDK版本问题**:WebLogic 8...

Global site tag (gtag.js) - Google Analytics