60.2. 配置Apusic应用服务器

60.2.1. 配置高可用性

对于只需要负载均衡集群的用户,如果不需要配置高可用性,直接通过负载均衡器转发即可。如果需要负载均衡和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存储”

60.2.2. 配置Session粘滞

当用户想使用Session Stick时,不仅需要在apusic.conf文件中的SessionService中配置如下属性 :

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

还需要在Apusic应用服务器的vm.options(位置在%DOMAIN_HOME%/config目录下)文件中设置属性:

….
com.apusic.jvm.route=%RouteName%
….

其中,这里的%RouteName%为在第1步<Proxy balancer://test>中配置的与此Apusic应用服务器节点相对应的BalancerMember后面的route属性。