`
zepeng06630925
  • 浏览: 7332 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

Tomcat 配置多实例

阅读更多
网络上有好多关于 Tomcat 集群配置的文章,但有些是以 Tomcat 4 为基础的,有的并不是讲的很清楚,自己摸索了半天,试验成功了,现把简要过程写出来,让你在几分钟内体验一下 Tomcat Cluster 。

一、配置环境

下载和安装 JRE 1.5 最新版 (1.5.06)
下载和安装 Tomcat 最新版 (5.5.12),假定安装目录为 C:\Program Files\Apache Software Foundation\Tomcat 5.5
二、使 Tomcat 集群配置生效

修改 Tomcat 安装目录\conf\server.xml ,把 Server/Service/Engine/Host 下的 Cluster 结点前后的注释符(<!-- 和 -->)删除,并保存
三、配置第二个 Tomcat 实例

在 C:\Program Files\Apache Software Foundation\ 下新建目录 Tomcat 5.5 Instance1
将 C:\Program Files\Apache Software Foundation\Tomcat 5.5 目录下的全部内容复制到 C:\Program Files\Apache Software Foundation\Tomcat 5.5 Instance1
修改新实例的服务器配置文件 (C:\Program Files\Apache Software Foundation\Tomcat 5.5 Instance1\conf\server.xml),把其中的 Server/Service/Connector 的端口更改,以避免和第一个冲突(8080 -> 9080,8009 -> 9009,8443 -> 9443)
修改 Cluster/Receiver 结点的 tcpListenPort 端口(此端口用于 Session 复制),以避免和第一个冲突(4001 -> 4002)
注:Tomcat Cluster 默认使用多播来建立成员关系,即两个实例的多播的地址和端口一样,就可以互相认为是同一个 Cluster 的成员。

四、启动验证两个 Tomcat 实例能否正常工作

直接用程序菜单里的 Monitor Tomcat 来启动第一个实例(或在服务器里启动)
第二个实例启动稍微麻烦一些,在 C:\Program Files\Apache Software Foundation\Tomcat 5.5 Instance1\Bin 下建一个 startup.bat ,用如下 java 命令来启动:
"C:\Program Files\Java\j实re1.5.0_06\bin\java.exe" -jar .\bootstrap.jar -Dcatalina.home="C:\Program Files\Apache Software Foundation\Tomcat 5.5 Instance1" -Dcatalina.base="C:\Program Files\Apache Software Foundation\Tomcat 5.5 Instance1" -Djava.endorsed.dirs="C:\Program Files\Apache Software Foundation\Tomcat 5.5\common\endorsed" -Djava.io.tmpdir="C:\Program Files\Apache Software Foundation\Tomcat 5.5 Instance1\temp" -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.util.logging.config.file="C:\Program Files\Apache Software Foundation\Tomcat 5.5 Instance1\conf\logging.properties" start

看起来挺长,其实主要是第二个实例的安装目录太长的缘故,直接执行此批处理就可以启动第二个实例,如果配置正确,应该可以看到集群管理器启动,并和第一个实例   建立成员关系的信息。

五、写一个简单Web应用,能显示和设置 Session 属性值,以供测试

如果有开发工具,新建一个 Web App ,假设为 TomcatDemo
新增 index.jsp ,加入如下代码:
<%@ page contentType="text/html; charset=UTF-8" import="java.util.*"%>
<html><head><title>Cluster App Test</title></head>
<body>
Server Info: <%out.print(request.getLocalAddr() + " : " + request.getLocalPort());%>
<%
out.println("<br> ID " + session.getId());

// 如果有新的 Session 属性设置
String dataName = request.getParameter("dataName");
if (dataName != null && dataName.length() > 0) {
  String dataValue = request.getParameter("dataValue");
  session.setAttribute(dataName, dataValue);
}

out.print("<b>Session 列表</b>");

Enumeration e = session.getAttributeNames();
while (e.hasMoreElements()) {
  String name = (String)e.nextElement();
  String value = session.getAttribute(name).toString();
  out.println( name + " = " + value);
  }
%>
<form action="index.jsp" method="POST">
  名称:<input type=text size=20 name="dataName">
  <br>
  值:<input type=text size=20 name="dataValue">
  <br>
  <input type=submit>
  </form>
</body>
</html>


以上代码主要是显示服务器信息和 Session 值,并包含一个 Form ,可以随时新建一个 Session 属性值

修改此用应用的 Web.xml ,加入 distributable 属性,表示 Tomcat 要为此 Web 应用复制 Session  
<web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" version="2.4">
    <display-name>TomcatDemo</display-name>
    <distributable/>
</web-app>

将应用打包成 WAR 文件,分别上现两个实例的 Tomcat Manager 来部署
(如果没有 Java 开发工具,可以直接建立一个 TomcatDemo 的目录,用 Notepad 将如上的内容复制并保存成 index.jsp,然后在此目录下新建子目录 WEB-INF,再用 Notepad 新建一 Web.xml 文件,将上面的代码复制保存,然后将此目录压缩成 Zip 文件,再把后缀改成 .war ,或利用 jar 命令来创建 .war 文件)

六、测试 Tomcat 集群和 Session 复制的是否工作

在 IE 中打开第一个实例中的 TomcatDemo (http://localhost:8080/TomcatDemo),在 Form 里随便设置一个 Session 属性,如 MyName = foo
将 IE 地址栏中的地址修改为第二个实例中的 TomcatDemo(http://localhost:9080/TomcatDemo),刷新,就可以看到注意到 SessionID 不变, MyName 的属性值已有了
同样,如果在第二实例中设置的值,在第一个实例的页面中也能看到
注意:必须在同一个 IE 窗口中进行如上测试,以保证是同一个 Session ,如果是两个窗口,则 Session 可能不同,也互相看不到 Session 复制的结果。

七、其它工作

上述只实现了 Session 复制,而没有实现 Load Balance(负载均衡),这可以利用 Apache 等来实现,网上有很多相关文章,可能参考)
分享到:
评论

相关推荐

    jdk,tomcat配置实例

    ### JDK与Tomcat配置实例详解 #### 一、JDK安装与配置 在进行Java开发时,首先需要安装Java Development Kit(简称JDK),它是Java应用程序的基础环境。 **步骤1:下载并安装JDK** 1. **下载JDK**:访问Oracle...

    Nginx+tomcat配置集群负载均衡实例

    配置Nginx+Tomcat集群负载均衡的第一步是安装Nginx和多个Tomcat实例。在多台服务器上部署Tomcat,形成一个集群,确保服务的高可用性。每台服务器上的Tomcat实例都需要配置相同的应用,以处理相同类型的请求。 接...

    tomcat单机多实例的实现

    【标题】:Tomcat单机多实例的配置与管理 【描述】:本文详细阐述了如何在单台服务器上配置和管理多个独立的Tomcat实例,以实现应用程序的隔离和资源的有效利用。通过实例和代码,我们将深入理解单机多实例的优缺点...

    Tomcat+JSP配置实例

    ### Tomcat+JSP配置实例 #### 开发环境配置 **第一步:下载 j2sdk 和 tomcat** - **j2sdk**(Java 2 SDK)是开发Java应用的基础工具包,包含了编译器、解释器等必要的工具。 - **tomcat**是一个开源的Servlet容器...

    tomcat 多实例脚本文件

    总之,`multomcat.sh` 脚本和 `default_template` 文件是管理和维护 Tomcat 多实例环境的核心工具,它们简化了配置过程,并使得在一台服务器上高效地运行多个独立的 Tomcat 实例成为可能。通过理解这些概念和操作,...

    zabbix自动安装单机多tomcat实例脚本

    【Zabbix自动安装单机多Tomcat实例脚本详解】 在IT运维中,监控系统扮演着至关重要的角色,Zabbix作为一款开源的企业级监控解决方案,能够有效地监控服务器、网络设备以及应用程序的运行状态。本资源提供的"zabbix...

    tomcat配置实例.rar

    【标题】"Tomcat配置实例"是一个针对Java Web开发者的重要资源,它包含了详细的步骤和实践教程,帮助用户深入了解和熟练掌握Tomcat服务器的配置过程。Tomcat是Apache软件基金会的Jakarta项目下的一个开源Servlet容器...

    tomcat及其配置文件

    【标题】:“Tomcat及其配置文件” 在Java Web开发领域,Tomcat是一个广泛使用的开源应用服务器,它专注于Servlet和JSP的应用。Tomcat是Apache软件基金会的Jakarta项目的一部分,作为一个轻量级的Web服务器和...

    一个tomcat配置多个端口运行不同项目

    本教程将深入探讨如何配置Apache Tomcat 8.5.11以支持在一个实例中同时运行多个项目,每个项目绑定到不同的端口,以实现资源的有效利用和管理。 首先,我们需要了解Tomcat的基本结构。在解压的`apache-tomcat-...

    tomcat配置多个程序的设置

    当需要在一个Tomcat实例上运行多个程序时,这通常是为了节省系统资源或便于集中管理。以下将详细介绍如何配置Tomcat来运行多个程序以及相关的内存设置。 1. **部署多个应用程序** 在Tomcat的`webapps`目录下,每个...

    zabbix监控tomcat多实例自动化脚本配置

    首先,理解“Zabbix监控Tomcat多实例自动化脚本配置”意味着我们需要在Zabbix中设置一个自动发现规则,以便它能识别并监控运行在同一服务器或不同服务器上的所有Tomcat实例。这通常涉及到以下几个关键步骤: 1. **...

    使用Tomcat配置域名

    下面将详细解释如何使用Tomcat配置域名。 首先,我们需要理解域名配置的基本概念。域名是互联网上识别服务器的唯一标识,如www.example.com。在Tomcat中,通过Server.xml文件配置虚拟主机(Virtual Host),实现一...

    多jdk多tomcat配置

    ### 多JDK与多Tomcat配置详解 在软件开发过程中,不同的项目可能对Java运行环境有着不同的需求,比如一个项目需要使用JDK 1.4 和 Tomcat 5.0,而另一个项目则需要使用JDK 1.5 和 Tomcat 6.0。这种情况下,单一的...

    Tomcat运行配置代码实例

    本教程将深入探讨如何配置并运行Tomcat服务器,通过一个实际的代码实例来帮助你更好地理解这一过程。 首先,我们需要了解Tomcat的基本结构。Tomcat的根目录通常包含以下几个关键部分: 1. `bin`:这个目录包含了...

    tomcat网站发布实例

    Tomcat 网站发布实例 Tomcat 是一个流行的开源 Web 服务器软件,广泛应用于企业级 Web 应用程序。为将 Tomcat 项目发布到公网上,需要使用域名发布网站。下面将详细介绍使用给定域名发布 Tomcat 项目网站的实例,并...

    tomcat集群配置

    Tomcat集群是指多个独立的Tomcat实例通过网络连接协同工作,共同处理请求,实现负载均衡和数据共享。在集群环境中,每个Tomcat实例被称为一个节点。 **二、负载均衡** 负载均衡是Tomcat集群的核心功能之一,它的...

    tomcat集群-Apache2.2.4+And+mod_jk.so+tomcat配置文件

    总结来说,"tomcat集群-Apache2.2.4+And+mod_jk.so+tomcat配置文件"的配置涉及到多个步骤,包括Apache和Tomcat的安装、mod_jk模块的集成、配置文件的修改以及负载均衡策略的设定。这个过程对于构建高可用、高性能的...

    tomcat配置教程,数据源配置,基础教程,tomcat下conf文件夹配置教程

    5. **server-default.xml**和**server-partner.xml**:这两个文件通常用于多实例部署,一个作为默认配置,另一个用于特定的服务器配置。 四、Tomcat优化 1. **调整连接池**:通过修改数据源配置,可以调整连接池的...

    Tomcat+JSP+MySQL经典配置实例

    ### Tomcat+JSP+MySQL 经典配置实例详解 #### 一、环境搭建与配置 在本章节中,我们将详细介绍如何配置一个基于Tomcat、JSP和MySQL的经典开发环境。这种组合是Java Web开发中非常常见的配置之一,能够帮助开发者...

Global site tag (gtag.js) - Google Analytics