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