2015-10-14 60 views
2

我有3個服務器:JBoss的7負載均衡會話複製

  • 2的Jboss 7.1.1服務器
  • 1 Apache服務器

我使用的mod_jk

我的配置遵循以下結構:

enter image description here

在我的web應用程序中,我有一個會話計數器。

客戶端1請求Web服務器(我的意思是Load Balancer Server),Web Server選擇第一個JBoss AS。

這次,Counter ++(例如:Counter = 5)。

之後,我關閉了第一個JBoss AS。

然後,客戶端繼續向Web服務器發送請求,第一個JBoss AS關閉,所以Web Server將選擇第二個JBoss AS。

這個時間計數器再次啓動(計數器= 0)

所以。我想在每個JBoss AS中保留會話計數器。

我的意思是,這次計數器在第一個JBoss AS關閉後應該是6。

我該怎麼辦?

請參閱下面的配置。

#/etc/apache2/workers.properties 
##### Balancer ###### 
#worker.jboss.type=lb 
#worker.jboss.balance_workers=jboss1,jboss2 
#worker.jkstatus.type=status 
worker.list=jboss,jk-status 

##### JBOSS Machine 1 ##### 
worker.jboss1.type=ajp13 
worker.jboss1.host=192.168.20.131 
worker.jboss1.port=8009 
worker.jboss1.lbfactor=1 


##### JBOSS Machine 2 ##### 
worker.jboss2.type=ajp13 
worker.jboss2.host=192.168.20.130 
worker.jboss2.port=8009 
worker.jboss2.lbfactor=1 


##### LOAD Balancing ###### 
worker.jboss.type=lb 
worker.jboss.balance_workers=jboss1,jboss2 
worker.jboss.sticky_session=true ## I used to sticky session 
worker.jk-status.type=status 

我的JBoss Web應用程序:

<?xml version="1.0" encoding="UTF-8"?> 
<jboss-web> 
    <context-root>/</context-root> 
    <replication-config> 
     <replication-trigger>SET_AND_GET</replication-trigger> 
     <replication-granularity>SESSION</replication-granularity> 
    </replication-config> 
</jboss-web> 

我的Web配置

<?xml version="1.0" encoding="UTF-8"?> 
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xmlns="http://java.sun.com/xml/ns/javaee" 
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" 
    id="WebApp_ID" version="3.0"> 
    <display-name>HelloWorld</display-name> 
    <distributable/> 
</web-app> 

Standalone.xml

<system-properties> 
    <property name="jvmRoute" value="jboss1"/> 
    <property name="useJK" value="true"/> 
</system-properties> 

AJP連接器

<subsystem xmlns="urn:jboss:domain:web:1.1" default-virtual-server="default-host" instance-id="jboss1" native="false"> 
    <connector name="http" protocol="HTTP/1.1" scheme="http" socket-binding="http"/> 
    <connector name="ajp" protocol="AJP/1.3" scheme="ajp" socket-binding="ajp" /> 
    <virtual-server name="default-host" enable-welcome-root="false"> 
     <alias name="localhost"/> 
     <alias name="example.com"/> 
    </virtual-server> 
</subsystem> 

回答

2

要啓用會話複製,你需要在集羣配置JBoss: https://docs.jboss.org/author/display/AS71/AS7+Cluster+Howto

,最有可能切換到mod_cluster而不是mod_jk的,使用集羣的全部功能: https://docs.jboss.org/author/display/AS71/AS7+Cluster+Howto#AS7ClusterHowto-ClusterConfiguration

如果你決定嘗試,我建議你閱讀http://blog.akquinet.de/的一系列文章。鏈接到第一個: http://blog.akquinet.de/2012/06/21/clustering-in-jboss-as7eap-6/