2008-05-23

集群配置

使用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
评论
发表评论

您还没有登录,请登录后发表评论