集群配置

使用Apache作为前端的负载均衡器,Apusic做为后台服务器。Apache接收客户端请求,并将请求转发给Apusic;当Apusic
服务器处理结束,将响应的信息转发给Apache,并通过Apache最终将响应信息传到客户端。
使用Apache作为负载均衡器,可以有许多策略,我们现在配置的是session sticky策略。通俗的说,就是Session 粘住。可以这样来解释:
当浏览器通过Apache转发请求到某一台服务器后,此后Apache将所有的请求,都转发到这一台服务器上。有两种情况,Apache将请求转发到
另外一台服务器上:
1)、该服务器宕掉。
2)、浏览器关闭。

集群的配置过程:
1、安装Apache
./configure --prefix=/usr/local/apache2.2.4 --with-ssl=/usr/local/openssl --enable-so --enable-mods-shared="ssl headers proxy proxy_balancer proxy_connect proxy_http cache mem_cache"
make
make install
2、Apusic配置
apusic.conf中加入:
<SERVICE
CLASS="com.apusic.cluster.ClusterService"
>
<ATTRIBUTE NAME="ClusterName" VALUE="ApusicCluster"/>
<ATTRIBUTE NAME="LoadWeight" VALUE="100"/>
</SERVICE>
将SessionService配置Session复制和转发
<ATTRIBUTE NAME="Distributable" VALUE="True"/>
<ATTRIBUTE NAME="Replicable" VALUE="True"/>
3、在Apusic配置集群队列
在Linux操作系统下,需要编辑jgroup.xml文件,
<UDP
mcast_addr="230.0.0.1" mcast_port="2550"
ip_ttl="8" ip_mcast="true" loopback="true"
mcast_send_buf_size="32000" mcast_recv_buf_size="64000"
ucast_send_buf_size="32000" ucast_recv_buf_size="64000"
down_thread="false" up_thread="false" bind_addr="192.168.6.129"/>
通过bind_addr,将IP绑定。
4、Apache的负载均衡的配置:
#<VirtualHost *:80>
ProxyPass / balancer://proxy/ stickysession=JSESSIONID nofailover=Off
#ProxyPass / balancer://proxy/
<Proxy balancer://proxy>
BalancerMember http://192.168.6.129:6888 loadfactor=1 route=jvm1
BalancerMember http://192.168.6.69:6888/ loadfactor=1 route=jvm2
</Proxy>
#</VirtualHost>

5、Apusic启动脚本
java -Dcom.apusic.jvm.route=jvm1 -Xms128m -Xmx512m -classpath "$CP" com.apusic.server.Main -root "$APUSIC_HOME" "$@"

6、性能优化
1)、Apache调优
配置参数:
<IfModule prefork.c>
ServerLimit 1000
StartServers 5
MinSpareServers 5
MaxSpareServers 10
MaxClients 900
MaxRequestsPerChild 0
</IfModule>
2)、Apusic调优
<SERVICE
CLASS="com.apusic.util.ThreadPoolService"
NAME="apusic:service=ThreadPool,name=MuxHandler"
>
<ATTRIBUTE NAME="MinSpareThreads" VALUE="0"/>
<ATTRIBUTE NAME="MaxSpareThreads" VALUE="10"/>
<ATTRIBUTE NAME="MaxThreads" VALUE="200"/>
<ATTRIBUTE NAME="MaxQueueSize" VALUE="500"/>
<ATTRIBUTE NAME="IdleTimeout" VALUE="300"/>
</SERVICE>

<SERVICE
CLASS="com.apusic.util.ThreadPoolService"
NAME="apusic:service=ThreadPool,name=HTTPHandler"
>
<ATTRIBUTE NAME="MinSpareThreads" VALUE="5"/>
<ATTRIBUTE NAME="MaxSpareThreads" VALUE="30"/>
<ATTRIBUTE NAME="MaxThreads" VALUE="300"/>
<ATTRIBUTE NAME="MaxQueueSize" VALUE="500"/>
<ATTRIBUTE NAME="IdleTimeout" VALUE="300"/>
</SERVICE>

<SERVICE
CLASS="com.apusic.util.ThreadPoolService"
NAME="apusic:service=ThreadPool,name=ORBWorker"
>
<ATTRIBUTE NAME="MinSpareThreads" VALUE="5"/>
<ATTRIBUTE NAME="MaxSpareThreads" VALUE="30"/>
<ATTRIBUTE NAME="MaxThreads" VALUE="30"/>
<ATTRIBUTE NAME="MaxQueueSize" VALUE="500"/>
<ATTRIBUTE NAME="IdleTimeout" VALUE="300"/>
</SERVICE>

<SERVICE
CLASS="com.apusic.net.Muxer"
>
<ATTRIBUTE NAME="Port" VALUE="7888"/>
<ATTRIBUTE NAME="Backlog" VALUE="150"/>
<ATTRIBUTE NAME="Timeout" VALUE="600"/>
<ATTRIBUTE NAME="MaxWaitingClients" VALUE="800"/>
<ATTRIBUTE NAME="WaitingClientTimeout" VALUE="5"/>
<ATTRIBUTE NAME="SSLEnabled" VALUE="True"/>
<ATTRIBUTE NAME="SecurePort" VALUE="7889"/>
<ATTRIBUTE NAME="KeyStore" VALUE="config/sslserver"/>
<ATTRIBUTE NAME="KeyPassword" VALUE="keypass"/>
</SERVICE>

增加虚拟机内存参数:
$JAVA_RUN -Dcom.apusic.jvm.route=jvm1 -Djava.awt.headless=true -Dorg.apache.commons.logging.Log=org.apache.commons.logging.impl.Jdk14Logger -Xms1024m -Xmx1536m -XX:MaxPermSize=128m -XX:MaxNewSize=256m -XX:NewRatio=2 -XX:NewSize=128M -XX:SurvivorRatio=8 -Xss128k -XX:+UseConcMarkSweepGC -XX:+CMSIncrementalPacing -Xrs -Xloggc:gc.txt -XX:+PrintGC -XX:+PrintGCDetails -classpath "$CP" com.apusic.server.Main -root "$APUSIC_HOME" "$@"

3)、系统调优
ulimit –n 65535
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值