1

我正在使用 EAP Jboss 6 开发 Struts 2 框架。我的项目会话变量是使用“HTTP 会话映射”存储和检索的。当我使用集群转移到 Jboss 的域模式时,我的会话值在服务器的不同节点之间切换时丢失了。然后我配置了粘性会话并将会话值存储在 Cookies 中。即使我能够在第一次请求时从 cookie 中检索值,HTTP 会话还是丢失了。目前我正在使用 Apache Mod Cluster 进行集群配置如下。

LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
LoadModule proxy_http_module modules/mod_proxy_http.so

LoadModule proxy_cluster_module modules/mod_proxy_cluster.so

LoadModule manager_module modules/mod_manager.so
LoadModule slotmem_module modules/mod_slotmem.so
LoadModule advertise_module modules/mod_advertise.so

Listen 192.168.5.30:80

<VirtualHost 192.168.5.30:80>
 ManagerBalancerName my-cluster
 ServerName NSN
<Directory />
    Order deny,allow
    Allow from all
</Directory>
<Location /mod_cluster-manager>
    SetHandler mod_cluster-manager
    Order deny,allow
    Allow from all
</Location>
EnableMCPMReceive
#ProxyPass / balancer://my-cluster stickysession=JSESSIONID|jsessionid nofailover=On
 ProxyPass / balancer://my-cluster stickysession=off nofailover=On
 ProxyPassReverse / balancer://my-cluster
 ProxyPreserveHost On

      KeepAliveTimeout 60

      ServerAdvertise On

现在搜索并找到了一些关于 mod_cluster 的内容(https://github.com/modcluster/mod_cluster)。其中提到将文件夹放入“JBoss 服务器配置文件的部署目录”。但是在 EAP Jboss 6.0 域模式下,我不知道部署目录在哪里以及如何配置该 mod 集群?

4

1 回答 1

0

我通过在 WEB-INF 文件夹下配置 jboss-web.xml 解决了会话复制,如下所示...

<?xml version="1.0" encoding="UTF-8"?>
<jboss-web version="6.0"
       xmlns="http://www.jboss.com/xml/ns/javaee"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.jboss.com/xml/ns/javaee http://www.jboss.org/j2ee/schema/jboss-web_6_0.xsd">
<replication-config>
    <!-- The default value is SET_AND_NON_PRIMITIVE_GET, therefore the byte array which is carrying the data is considered
non-primitive and would cause replication even in read only scenario. -->
    <replication-trigger>SET</replication-trigger>

    <!-- Replicating entire session is the default. -->
    <replication-granularity>SESSION</replication-granularity>
   <replication-mode>SYNCHRONOUS</replication-mode>
</replication-config>

在这种情况下,无需使用 cookie 来存储值...

于 2013-05-08T05:44:30.757 回答