Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/346.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Tomcat负载平衡器解决方案_Java_Tomcat_Load Balancing - Fatal编程技术网

Java Tomcat负载平衡器解决方案

Java Tomcat负载平衡器解决方案,java,tomcat,load-balancing,Java,Tomcat,Load Balancing,我正在寻找一个好的负载平衡器与Tomcat一起使用。我们的应用程序在会话上下文中不存储任何内容,因此为同一用户重定向到同一服务器并不重要。我只是希望能够以循环方式或基于每个服务器的独立负载对请求进行排队。我还希望能够将应用程序服务器添加到那些可用于处理请求的服务器中,而无需重新启动负载平衡器。如果有必要的话,我们正在linux上运行应用程序 如果您只需要linux上的软件负载平衡器,请使用Apache Webserver2、Mod Jk和Tomcat群集: 在您的Web服务器上: 安装apach

我正在寻找一个好的负载平衡器与Tomcat一起使用。我们的应用程序在会话上下文中不存储任何内容,因此为同一用户重定向到同一服务器并不重要。我只是希望能够以循环方式或基于每个服务器的独立负载对请求进行排队。我还希望能够将应用程序服务器添加到那些可用于处理请求的服务器中,而无需重新启动负载平衡器。如果有必要的话,我们正在linux上运行应用程序

如果您只需要linux上的软件负载平衡器,请使用Apache Webserver2、Mod Jk和Tomcat群集:

在您的Web服务器上:

  • 安装apache2和modjk:

    sudo apt-get install apache2 libapache2-mod-jk
    sudo a2enmod jk
    
  • 创建apache2可用的
    workers.properties
    文件。在某些情况下,它会自动创建在/etc/apache2目录中。此文件包含Tomcat服务器的lb配置、节点名称、IP和端口,即:

    worker.list=balancer,lbstats
    
    #node1
    worker.node1.type=ajp13
    worker.node1.host=YOUR_TOMCAT-NODE-IP
    worker.node1.port=YOUR_TOMCAT-NODE-AJP-PORT
    worker.node1.lbfactor=10
    
    #more nodes here ... (change name in between)
    
    #lb config
    worker.balancer.type=lb
    #turn off sticky session
    worker.balancer.sticky_session=0
    
    #add all defined node names to this list (node1, node2, ...):
    worker.balancer.balance_workers=node1
    
    #lb status information (optional)
    worker.lbstats.type=status
    
  • 在apache2配置文件中创建Mod Jk节(如果尚未自动创建)

    JkWorkersFile   /etc/apache2/workers.properties
    JkLogFile       /var/log/apache2/mod_jk.log
    JkShmFile       /tmp/jk-runtime-status
    JkLogLevel      info
    
  • 将应用程序装载到负载平衡器(apache2配置文件):

  • 在Tomcat服务器上:

  • 安装tomcat(使用tarball包imho,比apt-verison好得多)。Change server.xml:

  • 禁用
    server.xml
    中的http连接器(通过注释将其删除)

  • 启用AJP/1.3连接器,并设置在此节点的workers.properties中定义的端口

  • 将具有正确节点名称的jvmRoute添加到“引擎”元素:


    你在这里谈论的应用程序有多大?如果只需要两台服务器来处理负载,那么您可以在web服务器级别进行处理。如果你在看5台以上的服务器,你可能想看看商业解决方案。modjk和modcluster之间的区别是什么?mod_cluster是不同的
    JkMount /My-Java-App-Name       balancer
    JkMount /My-Java-App-Name/*     balancer
    
    JkMount /modjkstatus lbstats
    
      <Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster" />
    
       <distributable/>