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运行时关联solr和zookeeper
修改每个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集群怎么搭建的主要内容,如果未能解决你的问题,请参考以下文章
Nginx+Tomcat搭建高性能负载均衡集群-Windows本地测试版