文档章节

将多个Tomcat实例应用转为Windows服务

周烈庆
 周烈庆
发布于 2014/05/28 11:52
字数 829
阅读 108
收藏 0

有使用过Tomcat经验的朋友看到这个标题,就会产生疑问,安装Tomcat后,不就有一个Tomcat服务安装了吗?是的,没错,但不知道你是否将N个应用都用一个Tomcat实例来服务呢?这样的弊端是明显的,某个应用出现问题,需要重新启动Tomcat服务,那势必会影响其他正常运行的N- 1个服务,这样的效果显然不尽人意。理想的情况是一个Tomcat实例对应一个应用,并且每个Tomcat实例都是Windows服务,让Windows 服务控制台来对不同的应用单独进行启动与关闭。

那要怎么做呢?

首先是实现一个Tomcat程序上,运行N个Tomcat实例,然后每个Tomcat实例对应一个应用。 1.解压Tomcat压缩包(非Tomcat安装版),在%Tomcat%目录下会有bin,common,conf,logs,server,shared,tmp,webapps,work等文件夹与文件,我统称这些为Tomcat程序。

2.创建应用名称为PROJECT[X]的文件夹(非%Tomcat%下),将%Tomcat%文件夹下的conf,logs,tmp,work文件夹拷贝到%PROJECT[X]%目录下。

注:我现在用[X]代替,[X]可以是0-9的数字

3.修改%PROJECT[X]%/conf/server.xml配置文件中的三个端口: a.Server port=”8[X]05″ shutdown=”SHUTDOWN” b.Connector port=”8[X]80″ maxHttpHeaderSize=”8192″ … c.Connector port=”8[X]09″ enableLookups=”false” …

注:Tomcat默认的这三个端口号为8005,8080,8009,PROJECT1对应8105,8180,8109,PROJECT2对应8205,8280,8209,以此类推。

4.现在启动Tomcat实例,在%PROJECT[X]%目录下创建startup.bat脚本,代码如下: set JAVA_HOME=D:\JDK set CATALINA_BASE=D:\PROJECT[X] set CATALINA_HOME=D:\TOMCAT %CATALINA_HOME%\bin\catalina start

5.启动各自%PROJECT[X]%的startup.bat,各自独立的Tomcat实例就启动了。

那为什么我会想要将这些各自的Tomcat实例转成Windows服务呢?原因有三点: 1.多个Tomcat实例启动会有多个Tomcat的SHELL在运行,一个字-丑 2.通常WEB服务器都需要远程登录,如果使用startup.bat脚本启动的方式,那管理员将不能使用注销,而只能关闭远程连接,这样做的后果是服务器会提示“超出最大连接数”的错误,只能乖乖的请求托管商重新启动服务器,一个字-烦 3.将Tomcat实例转成Windows服务,可以让应用在系统启动时候一起启动,而不需要手动去启动每个Tomcat实例

其实将Tomcat实例转成Windows服务也是很简单的事情,只需要运行下面脚本 set JAVA_HOME=D:\JDK set CATALINA_BASE=D:\PROJECT[X] set CATALINA_HOME=D:\TOMCAT %CATALINA_HOME%\bin\service.bat install “PROJECT[X]”

运行脚本后,Windows服务控制台将多了如Apache Tomcat “PROJECT[X]”服务。

本文转载自:http://bluexp29.blog.163.com/blog/static/33858148200972184354935/

共有 人打赏支持
周烈庆
粉丝 12
博文 8
码字总数 3197
作品 0
深圳
技术主管
windows 安装tomcat 7

tomcat 算是最知名的java容器了,windows下安装使用tomcat 7其实并不易,本文以windows 2008R2 x64为例。 1、下载安装JDK,设置JAVA_HOME (略) 2、下载tomcat 7 由于我们是x64系统,所以需...

紫色葡萄
2016/07/17
0
0
linux(centos)下一个tomcat版本创建多个实例

之前在windows上面写了一篇windows下一个tomcat版本创建多个实例,又在linux上面试了下。 首先必须配置java环境变量以及tomcat的环境变量CATALINA_HOME=/usr/local/tomcat 配置环境变量的方法...

luamas
2014/02/24
0
6
分布式水平扩展是什么样的结构,zookeeper等到底是如何治理服务的?

我知道单一应用项目做分布式,做水平扩展,就是直接复制项目实例,用一定的负载分发机制代理请求,比如用nginx+多台tomcat的形式,每台tomcat部署相同的项目,使用redis管理session,保证ses...

FutureElement
2017/10/23
180
1
apache+jk+tomcat集群配置

1集群配置介绍 Apache Tomcat可以说是当下最受欢迎的开源Java Web服务器。Tomcat的单个实例恐怕无法满足访问量日增的需要。这种情况下,需要考虑在“集群”环境下运行Tomcat;在这种环境下,...

bill2candy
2016/10/28
14
0
开发cloudify配方文件-两种应用伸缩方式

扩展规则 扩展服务 Cloudify支持两种方式来扩展服务 : Automatic Scaling Manual Scaling 自动扩展 Cloudify使每个服务定义一个扩展规则来决定是否服务需要扩展或缩小,例如使用一个基于忙线...

chape
2013/04/10
0
0

没有更多内容

加载失败,请刷新页面

加载更多

redis 系列一 -- 简介及安装

1.简介 redis -- remote dictionary server 远程字典服务 使用 C 语言编写; 高性能的 key-value数据库; 内存数据库,支持数据持久化。 Redis 是一个开源(BSD许可)的,内存中的数据结构存...

imbiao
32分钟前
1
0
nginx log记录请求响应时间

有时为了方便分析接口性能等,需要记录请求的时长,通过修改nginx的日志格式可以做到,如 添加一个新的log_format log_format timed_combined '$remote_addr - $remote_user [$time_local] "...

swingcoder
55分钟前
2
0
Spring MVC之RequestMappingHandlerMapping匹配

对于RequestMappingHandlerMapping,使用Spring的同学基本都不会陌生,该类的作用有两个: 通过request查找对应的HandlerMethod,即当前request具体是由Controller中的哪个方法进行处理; 查...

爱宝贝丶
59分钟前
2
0
Java Web--增删改查之二界面后台java代码(转载参考)

/** *  *//** * @author Administrator * */package dao; import java.sql.*;public class DBConn {/** * 链接数据库 * @return */  ...

小橙子的曼曼
今天
2
0
Redis源码阅读笔记-对象及其类型和编码

总结之《Redis设计与实现》 对象 Redis中是使用对象来便是数据库中的键和值。 结构 // server.h...#define LRU_BITS 24...typedef struct redisObject { unsigned type:4; ...

Jian_Ming
今天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部