AASv9.0 配置session高可用
关键词: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存储”。