项目

一般

简介

AASv9.0 配置session高可用

佘 肃徽将近 2 年 之前添加

关键词:session、会话、同步、集群、复制

对于只需要负载均衡集群的用户,如果不需要配置高可用性,直接通过负载均衡器转发即可。如果需要负载均衡和Session高可用,则有两种配置方式。 

1、 session通过集群服务迁移的方式 

为了使用集群,你需要在%DOMAIN_HOME%\config\apusic.conf中配置服务ClusterService,示例如下: 

<SERVICE CLASS="com.apusic.cluster.ClusterService"> 

<ATTRIBUTE NAME="ClusterName" VALUE="ApusicCluster"/> 

<ATTRIBUTE NAME="LoadWeight" VALUE="100"/> 

<ATTRIBUTE NAME="ServerName" VALUE="$DOMAIN_NAME"/> 

</SERVICE> 

其中属性ClusterName为集群的名称,多个节点如果想加入到同一个集群中,ClusterName必须相同。 ServerName为当前节点的名称,必须唯一,如果存在相同名称的节点,则后加入的节点会加不到集群中。默认的ServerName为当前 Domain的名称,AutoReConnect属性,用于集群节点断开重连。 

同时,你需要设定SessionService的Distributable和Replicable属性为True,示例如下: 

<SERVICE CLASS="com.apusic.servlet.http.session.SessionService"> 

<ATTRIBUTE NAME="DefaultSessionTimeout" VALUE="3600"/> 

<ATTRIBUTE NAME="MaxSessionsInCache" VALUE="1024"/> 

<ATTRIBUTE NAME="SessionInvalidateCheckInterval" VALUE="60"/> 

<ATTRIBUTE NAME="Distributable" VALUE="True"/> 

<ATTRIBUTE NAME="Replicable" VALUE="True"/> 

<ATTRIBUTE NAME="SessionStick" VALUE="True"/> 

</SERVICE> 

注意:在linux下以上配置都正确的情况下,出现节点不能正确加入集群,请设置etc/hosts文件的地址为局域网内部地址。 

根据上面配置好集群之后要配置session的存储方式。在这里,session的存储方式只能是文件存储,关系数据库存储,嵌入式数据库存储中的一种。具体配置内容请参考请参考第 30.3 节 “配置Session存储”。 

由于Apusic默认Session复制策略为配对复制的,如果用户想使用Session多点复制,需要设定ClusterService的配置属性: 

<ATTRIBUTE NAME="ReplicationPolicy" VALUE="all"/> <!-- ReplicationPolicy默认为"pair",即配对复制。--> 

在使用Session配对复制时,用户可以通过管理控制台,设置节点配对。也可以手动在 ClusterService中增加属性SlaveServerName来指定其备份服务器,如下: 

<ATTRIBUTE NAME="SlaveServerName" VALUE="serverName"/> 

其中value值为其他节点的ServerName。 

2、分布式session存储 

这种方式只需要配置各个服务器的session存储统一为分布式存储即可。如何配置Session的分布式存储,请参考第 30.3 节 “配置Session存储”。