windows环境下的tomcat集群怎么搭建

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了windows环境下的tomcat集群怎么搭建相关的知识,希望对你有一定的参考价值。

搭建apache+tomcat集群的方法:
1、安装tomcat+apache+mysql
2、修改tomcat的端口,即修改server.xml中的配置,并修改 <Engine name="Catalina" defaultHost="localhost" jvmRoute="tomcat_8084">
3、修改httpd.conf,解注释Include conf.d/*.conf
4、在conf.d文件夹中加入xxx.conf文件,在该文件中添加如下配置:
#LoadModule proxy_http_module modules/mod_proxy_http.so

ProxyRequests Off

ProxyPass / balancer://chinatrial-cluster/ stickysession=JSESSIONID nofailover=Off
ProxyPassReverse / http://127.0.0.1:8084/
ProxyPassReverse / http://127.0.0.1:8184/
#ProxyPassReverse / http://127.0.0.1:8380/
<Proxy balancer://chinatrial-cluster>
BalancerMember http://127.0.0.1:8084/ max=800 loadfactor=10 route=tomcat_8084
BalancerMember http://127.0.0.1:8184/ max=800 loadfactor=10 route=tomcat_8184
# BalancerMember http://127.0.0.1:8380/ max=800 loadfactor=10 route=chinatrial_8080
</Proxy>
其中route后面的值是和tomcat的server.xml中的<Engine>中的jvmRoute相对应
5、实现session共享
在数据库中建session共享表:
CREATE DATABASE `session`
USE `session`;

DROP TABLE IF EXISTS `session`.`tomcat_sessions`;
CREATE TABLE `session`.`tomcat_sessions` (
`session_id` varchar(100) NOT NULL,
`valid_session` char(1) NOT NULL,
`max_inactive` int(11) NOT NULL,
`last_access` bigint(20) NOT NULL,
`app_context` varchar(255) default NULL,
`session_data` mediumblob,
PRIMARY KEY (`session_id`),
KEY `kapp_context` (`app_context`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
6、在项目的context.xml中进行Manager的配置:
<Manager className="org.apache.catalina.session.PersistentManager"
debug="99" saveOnRestart="true" maxActiveSessions="-1"
minIdleSwap="30" maxIdleSwap="600" maxIdleBackup="0">
<Store className="org.apache.catalina.session.JDBCStore"
driverName="com.mysql.jdbc.Driver"
connectionURL="jdbc:mysql://172.16.100.229/session?user=root&password=nazca123&useUnicode=true&characterEncodeing=utf-8"
sessionTable="tomcat_sessions" sessionIdCol="session_id"
sessionDataCol="session_data" sessionValidCol="valid_session"
sessionMaxInactiveCol="max_inactive"
sessionLastAccessedCol="last_access" sessionAppCol='app_context'
checkInterval="60" debug="0" />
</Manager>
参考技术A 一、软件需求
  操作系统:Windows XP
  JDK:jdk1.6.0_16,下载地址:http://www.oracle.com/technetwork/java/javase/downloads/index.html
  Apache :httpd-2.2.17 (一个),下载地址:http://httpd.apache.org/ 。
  Tomcat:tomcat-7.0.2 (两个),下载地址:http://tomcat.apache.org/download-70.cgi 。
  mod_jk:mod_jk-apache-2.0.55.so (1个),下载地址:http://tomcat.apache.org/download-70.cgi 。

二、环境搭建

  安照上篇《windows下apache tomcat整合》中的方法安装jdk/apache/tomcat

三、环境配置(两种配置)

  1. 原始配置

    (1)apache配置

       1>mod_jk.conf(apache/conf)

mod_jk.conf

2>httpd.conf(apache/conf)

httpd.conf

3>workers.properties(apache/conf)

workers.properties

  (2)tomcat配置

      1>server.xml(tomcat/conf)

server.xml

2>web.xml(tomcat/conf)

web.xml(tomcat下的)

     3>catalina.bat(tomcat/bin)这个文件只是添加了一个对tomcat内存优化配置的更改(前两行)

catalina.bat

以上最后的两个文件及前面有些配置使用该优化tomcat和jdk的,配置完成后的各个配置文件,具体操作步骤如下:

  (1)负载均衡 

    找到Apache安装目录下conf目录中的httpd.conf文件。
    在文件最后添加一句:include "D:\webserver\Apache Group\Apache2\conf\mod_jk.conf"(具体路径是你放置的位置而定)
    接着在conf目录中新建文件mod_jk.conf并添加下面的内容:
      #加载mod_jk Module
      LoadModule jk_module modules/mod_jk-apache-2.0.59.so
      #指定 workers.properties文件路径
      JkWorkersFile conf/workers.properties
      #指定哪些请求交给tomcat处理,"controller"为在workers.propertise里指定的负载分配控制器名
      JkMount /*.jsp controller  

    在conf目录下新建workers.properties文件并添加如下内容:
    #server
    worker.list = controller
    #========tomcat1========
    worker.tomcat1.port=11009
    worker.tomcat1.host=localhost
    worker.tomcat1.type=ajp13
    worker.tomcat1.lbfactor = 1
    #========tomcat2========
    worker.tomcat2.port=12009
    worker.tomcat2.host=localhost
    worker.tomcat2.type=ajp13
    worker.tomcat2.lbfactor = 1
    #(解释一下AJP13是 Apache JServ Protocol version 1.3)
    #========controller,负载均衡控制器========
    worker.controller.type=lb
    worker.controller.balanced_workers=tomcat1,tomcat2
    worker.controller.sticky_session=1

    将mod_jk-apache-2.0.59.so 复制到Apache的modules目录中。

    接下来配置2个Tomcat
    打开tomcat1\conf\ server.xml
    将Server port 改为11005:<Server port="11005" shutdown="SHUTDOWN">
    将Define Connector port改为11080:<Connector port="11080" maxHttpHeaderSize="8192"
    将AJP13 Connector port改为11009:<Connector port="11009" enableLookups="false" redirectPort="8443" protocol="AJP/1.3" />

    打开tomcat2\conf\server.xml
    将Server port 改为12005:<Server port="12005" shutdown="SHUTDOWN">
    将Define Connector port改为12080:<Connector port="12080" maxHttpHeaderSize="8192"
    将AJP13 Connector port改为12009:<Connector port="12009" enableLookups="false" redirectPort="8443" protocol="AJP/1.3" />
    好了,现在建立一个测试程序
    分别在两个Tomcat的webapps中建立test目录,并新建test.jsp文件,内容如下:
    <%
      System.out.println("test");
    %>

    启动apache, tomcat1, tomcat2

solr集群环境搭建

Solr集群环境搭建

 集群所需安装包

1. 在本地电脑的将以下安装包上传到共享目录中。

 solr-4.10.3.tgz.tgz和apache-tomcat-7.0.47.tar.gz 、jdk、zookeeper

1). 将共享目录下的zookeeper-3.4.6.tar.gz上传到        /usr/local/taotao_shop/solr_cloud

2). solr-4.10.3.tgz.tgz和apache-tomcat-7.0.47.tar.gz就不用了,直接使用上次我们搭建sorl单机版的tomcat就可以(上篇随笔)。

拷贝如下:

 

 

2. 首先搭建zookeeper集群

1). 将zookeeper压缩包解压,并将解压后的文件夹更名为zookeeper01,然后将zookeeper01该复制为两份,分为zookeeper02、zookeeper03

 

 

2). 在每个zookeeper目录下创建一个data目录

 

 

3). 并每个zookeeper在data目录下创建一个myid文件,文件名就叫做“myid”。内容就是每个实例的id。例如1、2、3

 

 

 

4). 修改每个zookeeper配置文件。把conf目录下的zoo_sample.cfg文件改名为zoo.cfg。

 

5). 并修改zoo.cfg文件内容。修改内容如下

(1). 修改每个zoo.cfg下面的dataDir,该值指向每个zookeeper的data目录

(2). 修改每个zoo.cfg下面的clientPort。注意端口不能重复,端口修改为 zookeeper01对应2182、zookeeper02对应2183、zookeeper03对应2184

(3). 在每个zookeeper的conf目录下的zoo.cfg末尾添加如下内容

server.1=192.168.25.128:2881:3881

server.2=192.168.25.128:2882:3882

server.3=192.168.25.128:2883:3883

解释:server.1、server.2、server.3分别代表zookeeper的集群列表,1、2、3分别表示zookeeperj节点的id。而ip(192.168.25.128)后面的端口表示zookeeper集群节点之间的通信端口,千万不要和上面我们修改的clientPort端口重复。然后最后的一个端口是zookeeper的选举端口,也不能重复。

操作如下:

修改zookeeper01/conf/zoo.conf

 

 

 

修改zookeeper02/conf/zoo.conf

 

 

 

修改zookeeper03/conf/zoo.conf

 

 

 

6). 启动每个zookeeper。可以执行每个zookeeper的bin目录下的zkServer.sh start。不过单独启动貌似有问题。这里我们编写一个批      处理文件来一次开启所有的zookeeper。

在/usr/local/taotao_shop/solr_cloud下创建zookeeper_all.sh,并将以下内容写入文件

cd /usr/local/taotao_shop/solr_cloud/zookeeper01/bin

./zkServer.sh start

cd /usr/local/taotao_shop/solr_cloud/zookeeper02/bin

./zkServer.sh start

cd /usr/local/taotao_shop/solr_cloud/zookeeper03/bin

./zkServer.sh start

修改zookeeper_all.sh的执行权限

 

可以在每个zookeeper的bin目录下使用./zkServer.sh status查看状态

开启zookeeper集群如下:

 

这里我们也可以创建一个zookeeper_stop.sh的批处理文件来关闭所有zookeeper。

cd /usr/local/taotao_shop/solr_cloud/zookeeper01/bin

./zkServer.sh stop

cd /usr/local/taotao_shop/solr_cloud/zookeeper02/bin

./zkServer.sh stop

cd /usr/local/taotao_shop/solr_cloud/zookeeper03/bin

./zkServer.sh stop

 

3. 搭建Solr集群

Solr的运行需要tomcat环境,所以我们直接将单机版的solr运行环境拷贝至集群环境        中即可,而且单机版的tomcat已经拷贝了solr.war。我们只需要修改一些配置文件就可    以了。单机版的solr参见《06.Solr单机安装并设置开机启动.docx》

1). 创建四个tomcat实例。

(1) 将/usr/local/taotao_shop/solr下面的tomcat_solr拷贝到/usr/local/taotao_shop/solr_cloud下面。

 

(2) 将/usr/local/taotao_shop/solr_cloud下面的tomcat_solr更名为tomcat8180。并将tomcat8180拷贝三份分别为tomcat8280、tomcat8380、tomcat8480

 

(3) 修改四个tomcat的端口。每个端口号和tomcat的文件名中数字对应。修改如下

修改tomcat8180的conf目录下的server.xml

 

 

 

 

tomcat8280的conf目录下的server.xml

修改的端口就是:8205   8280    8209

tomcat8380的conf目录下的server.xml

修改的端口就是:8305   8380    8309

tomcat8480的conf目录下的server.xml

修改的端口就是:8405   8480    8409

2). 为每个tomcat下的solr关联solrhome。将solr安装目录下/example/solr的所有文件     拷贝到的集群目录。更名为solrhome8180

 

 

3). 将solrhome8180拷贝三份。分别为solrhome8280、solrhome8380、solrhome8480

 

 

4). 修改每个tomcat的webapps/solr/WEB-INF下面的web.xml配置。关联solr和         solrhome。

(1) 修改tomcat8180下关联solrhome8180

 

 

(2) 修改tomcat8280下关联solrhome8280

 

 

 

 

(3) 修改tomcat8380和tomcat8480关联solrhome同理。

5). 配置solrCloud相关的配置。修改每一个solrhome下面solr.xml配置文件,将ip地       址和对应的tomcat端口进行配置

(1) 修改solrhome8180的solr.xml配置

 

 

 

 

(2) 修改solrhome8280的solr.xml配置

 

 

 

(3) 对于修改solrhome8380和solrhome8480参照上面。

4. zookeeper统一管理solr

现在zookeeper集群和solr集群已经搭建完成,那么如何搭建solrcloud环境呢,那么        就需要让zookeeper来管理solr的配置文件。

1). 使用solr-4.10.3/example/scripts/cloud-scripts/zkcli.sh这个上传工具将集群下任一        solrhome的collection1/conf上传到zookeeper集群

使用以上工具进行上传,输入如下命令即可(如果报错,可以尝试多执行几次)。

注意:./zkcli.sh命令之前要开启zookeeper集群。也就是先执行之前编写的批处理                 zookeeper_all.sh

./zkcli.sh -zkhost 192.168.25.128:2182,192.168.25.128:2183,192.168.25.128:2184 -cmd upconfig -confdir /usr/local/taotao_shop/solr_cloud/solrhome8180/collection1/conf  -confname myconf

 

 

2). 查看zookeeper配置文件,确定zookeeper是否管理solr了。

进入zookeeper0*任意目录,这里我们进入zookeeper01的bin目录。使用bin目录下面  的zkCli.sh来查看zookeeper集群所管理的配置。

在bin目录下执行:./zkCli.sh -server 192.168.25.128:2182

 

 

 

5. tomcat运行时关联solrzookeeper

修改每个tomcat(修改tomcat8180、tomcat8280、tomcat8380、tomcat8480)的bin目录 下的catalina.sh 文件,加入以下内容:

JAVA_OPTS="-DzkHost=192.168.25.128:2182,192.168.25.128:2183,192.168.25.128:2184"

 

 

 

注意JAVA_OPTS的位置,不要放最后哟

 

 

6. 启动所有的tomcat

(1) 启动tomcat8180、tomcat8280、tomcat8380、tomcat8480。这里我们编写批处理    文件来启动。创建tomcat_all.sh,内容如下:

cd /usr/local/taotao_shop/solr_cloud/tomcat8180/bin

./startup.sh

cd /usr/local/taotao_shop/solr_cloud/tomcat8280/bin

./startup.sh

cd /usr/local/taotao_shop/solr_cloud/tomcat8380/bin

./startup.sh

cd /usr/local/taotao_shop/solr_cloud/tomcat8480/bin

./startup.sh

 

 

(2) 修改文件的执行权限

 

 

 

(3) 编写关闭所有tomcat的批处理文件。创建tomcat_shop.sh。内容如下:

cd /usr/local/taotao_shop/solr_cloud/tomcat8180/bin

./shutdown.sh

cd /usr/local/taotao_shop/solr_cloud/tomcat8280/bin

./shutdown.sh

cd /usr/local/taotao_shop/solr_cloud/tomcat8380/bin

./shutdown.sh

cd /usr/local/taotao_shop/solr_cloud/tomcat8480/bin

./shutdown.sh

 

 

(4) 修改关闭批处理文件的执行权限

 

 

7. 测试。

(1) 执行批处理文件启动所有tomcat

 

 

 

(2) 在本地浏览器访问http://192.168.25.128:8180/solr

 

 

(3) 创建新的Collection进行分片处理

http://192.168.25.128:8180/solr/admin/collections?action=CREATE&name=collection2&numShards=2&replicationFactor=2

 

 

 

 

 

(4) 删除不用的collection

http://192.168.25.128:8180/solr/admin/collections?action=DELETE&name=collection1

 

 

 

 

 

以上是关于windows环境下的tomcat集群怎么搭建的主要内容,如果未能解决你的问题,请参考以下文章

环境搭建-CentOS集群搭建

简单实用的Tomcat集群搭建技法及排错

Nginx+Tomcat搭建高性能负载均衡集群-Windows本地测试版

结合Docker 搭建tomcat 集群

window环境之实验二 (Windows+Tomcat+MySQL)环境搭建

solr集群环境搭建