博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Tomcat 集群
阅读量:6296 次
发布时间:2019-06-22

本文共 3264 字,大约阅读时间需要 10 分钟。

 

  1.  前言

           该篇中测试的机器发生了变更,在第一篇中设置的Apache  DocumentRoot "d:/deployment"修改为了DocumentRoot d:/cluster 。这个不影响实际操作,just换了台电脑。

  在第一篇中讲了apache整合tomcat的,该篇中将阐述tomcat的集群. 

           

 

 

   2. 集群的概念

            集群分类

                 ■ 纵向集群 :VERTICAL CLUSTER 多个tomcat部署在同一台服务机上,CPU资源需要抢占,只能对内存进行拓展

                 ■ 横向集群 : HORIZONTAL CLUSTER  tomcat和服务机一一对应,即一台服务器上部署一个tomcat。(可做大规模集群)

           核心概念

                 ■ 负载均衡 :LOAD BALANCE  依据每个节点对应的权重大小分配需要处理的数据

                 ■ 高可用性 : HIGH AVAILABLE 实际运行中只有一台服务器在工作,当其挂掉后其他服务器顶上  

 

           Tomcat 官网给出的结构图 :

    

            通过负载均衡,任务TASK分配给集群节点.

 

 

3. 集群

     3.1 配置Apache      

      修改Apache  httpd.conf 文件 ,去掉第一篇中文件末尾追加的内容,在其后面追加如下内容:

LoadModule jk_module modules/mod_jk-1.2.31-httpd-2.2.3.soJKWorkersFile conf/workers.propertiesJkLogFile logs/mod_jk.log
DocumentRoot d:/cluster
AllowOverride None Order allow,deny Allow from all
ServerAdmin ufida-hf:80 ServerName ufida-hf:80DirectoryIndex index.html index.htm index.jsp index.actionErrorLog logs/error_log.txtCustomLog logs/access_log.txt commonJkMount /*WEB-INF cluster JkMount /servlet/* clusterJkMount /*.jsp clusterJkMount /*.do clusterJkMount /*.json clusterJkMount /*.action cluster

 

   备注:这里发布的包名称为JMIE

  在第一篇中使用的是 apj13 而这里使用的是cluster,那么这个cluster是哪里来的呢? 很显然是在worders.properties中进行配置,其内容如下:

worker.list = cluster#node1worker.node1.port = 8009worker.node1.host = localhostworker.node1.type = ajp13worker.node1.lbfactor = 1 #node2worker.node2.port = 9009worker.node2.host = localhostworker.node2.type = ajp13worker.node2.lbfactor = 1 #clusterworker.cluster.type = lb worker.cluster.balance_workers = node1,node2

  worker.lbcontroller.sticky_session=0

  worker.controller.sticky_session_force=false

worker.connection_pool_size=3000worker.connection_pool_minsize=40worker.connection_pool_timeout=10000

 

     

worker.node1.host = localhost

     worker.节点名称.host 表示的为节点对应的主机名 ,这里为纵向集群,都是在本地配置,如果需要横向集群直接修改对应的host即可。

 

worker.cluster.type = lb

      表示集群方式为负载均衡,其中worder.节点名称.lbfactor 表示节点对应的权重,权重越到处理的TASK越多,这里为1:1 即平均分配

 

    worker.lbcontroller.sticky_session=0     worker.controller.sticky_session_force=false

     保证session可在各节点进行复制,即关闭一台服务器后,我们登录系统的session会被转移到另外一台服务器上,客户端仍能正常操作。

 

worker.cluster.balance_workers = node1,node2

    表示两个节点tomcat对应名称为node1,node2 。

  

    3.2 配置TOMCAT

          由上可以需要两个tomcat ,解压两个tomcat

 

          修改tomcat node1 中的conf/server.xml文件

          

 

 

  节点2 在修改为8006

 

 

 节点2 修改为

 

 

节点2 修改为

 

 

 

   以上为设置tomcat在节点的名称,节点2修改为node2 ,随后在其下方加入:

 

    节点2修改为4001 。

 

     通过下图

可知道,为了集群,需要在应用中的web.xml末尾追加一个<distributable/>元素 。

 

       3.3 Tomcat调优

                通过以上的操作,集群环境已经成功搭建了,为了让tomcat能跑的更high,下面来对tomcat进行调优  。 

          3.3.1 优化启动参数

                   在tomcat的bin目录下修改catalina.bat 文件,在该文件头上追加如下信息

set JAVA_OPTS=-server -Xms1000M -Xmx1000M

         其中 server 表示tomcat 允许在生产环境 

              -Xms 和 -Xmx 表示最小、最大JVM内存(如果是win32的系统会受到系统内存的限制) 两者设置为一样,可通过如下命令来测试其合适的值

             java -Xmx1200m -version

 

         该值需要手动设置 .

 

         tomcat的启动参数还有很多,详细可自行查看官方文档:http://tomcat.apache.org/tomcat-7.0-doc/index.html

 

 

   3.3.2 TOMCAT本身优化

               将

 

            

              替换为:

 

            解释如下:

 

     

      同样的道理也可以去修改8080端口,这里集群我们只需要用到8009端口,将节点2同样优化后可启动两个Tomcat 

   

 

      3.4  测试集群

          将工程分别拷贝到两个TOMCAT中的webapps目录下

 

           重启apache ,后启动两个tomcat  

 

 

           输入  http://192.168.1.5/JMIE  访问

     关闭正在运行的tomcat后可发现扔可继续操作.

 

               该篇结束

 

转载地址:http://ydlta.baihongyu.com/

你可能感兴趣的文章
hadoop、hbase、zookeeper集群搭建
查看>>
python中一切皆对象------类的基础(五)
查看>>
modprobe
查看>>
android中用ExpandableListView实现三级扩展列表
查看>>
%Error opening tftp://255.255.255.255/cisconet.cfg
查看>>
java读取excel、txt 文件内容,传到、显示到另一个页面的文本框里面。
查看>>
《从零开始学Swift》学习笔记(Day 51)——扩展构造函数
查看>>
python多线程队列安全
查看>>
[汇编语言学习笔记][第四章第一个程序的编写]
查看>>
android 打开各种文件(setDataAndType)转:
查看>>
补交:最最原始的第一次作业(当时没有选上课,所以不知道)
查看>>
Vue实例初始化的选项配置对象详解
查看>>
PLM产品技术的发展趋势 来源:e-works 作者:清软英泰 党伟升 罗先海 耿坤瑛
查看>>
vue part3.3 小案例ajax (axios) 及页面异步显示
查看>>
浅谈MVC3自定义分页
查看>>
.net中ashx文件有什么用?功能有那些,一般用在什么情况下?
查看>>
select、poll、epoll之间的区别总结[整理]【转】
查看>>
CSS基础知识(上)
查看>>
PHP中常见的面试题2(附答案)
查看>>
26.Azure备份服务器(下)
查看>>