我有3台服务器:
我正在使用mod_jk
我的配置遵循以下结构:
在我的网络应用程序中,我有一个会话计数器。
客户端1请求Web服务器(我的意思是Load Balancer Server),Web Server选择第一个JBoss AS。
这一次,Counter ++(例如:Counter = 5)。
之后,我关闭了第一个JBoss AS。
然后,客户端继续向Web Server发送请求,第一个JBoss AS关闭,因此Web Server将选择第二个JBoss AS。
此时计数器再次启动(计数器= 0)
因此。我想在每个JBoss AS中保留会话计数器。
我的意思是,这次,在第一个JBoss AS出现故障后,Counter应该是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>
我的网络配置
<?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>
答案 0 :(得分: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/