tomcat集群部署

article/2025/9/23 16:15:01

tomcat集群部署

1 创建2个 tomcat
tomcat
2 将 tomcat 官网文档的配置示例复制到 server.xml文件中
官方文档

配置文档
3 修改 server.xml 文档中的参数配置
3.1 Cluster
   className表示tomcat集群时,之间相互传递信息使用那个类来实现信息之间的传递。channelSendOptions可以设置为2、4、8、10,每个数字代表一种方式。

  • 2= Channel.SEND_OPTIONS_USE_ACK(确认发送)
  • 4 = Channel.SEND_OPTIONS_SYNCHRONIZED_ACK(同步发送)
  • 8 = Channel.SEND_OFTIONS_ASYNCHRONOUS(异步发送)
  • 在异步模式下,可以通过加上确认发送(Acknowledge)来提高可靠性,此时channelSendOptions设为10

   信息传递方式一般为异步发送(数字8)
异步发送
3.2 Manager
     Manager 决定如何管理集群的 Session 信息。Tomcat 提供了两种 Manager:
BackupManager 和 DeltaManager。

  • BackupManager-集群下的所有 Session,将放到一个备份节点。集群下的所有节点都可以访问此备份节点
  • DeltaManager-集群下某一节点生成、改动的 Session,将复制到其他节点。DeltaManager 是 Tomcat 默认的集群 Manager,能满足—般的开发需求

   使用DeltaManager,每个节点部署的应用要一样;使用 BackupManager,每个节
点部署的应用可以不一样。

  • className-指定实现 org. apache.catalina.ha.session.BackupManager 接口的类,信息之间的管理
  • expireSessionsOnShutdown-设置为 true 时,一个节点关闭,将导致集群下的所有 Session 失效
  • notifyListenersOnReplication-集群下节点间的 Session 复制、删除操作,是否通知 session listeners
    Manager

3.3 Channel
     Channel:Tomcat节点之间进行通讯的工具。Channel包括5个组件。Membership、Receiver、Sender 、Transport、Interceptor。
Channel

3.2.1 Membership
   Membership:维护集群的可用节点列表。它可以检查到新增的节点,也可以检查到没有心跳的节点。

  • className-指定 Membership 使用的类 address-组播地址,一般用默认(本机)或者 IP 地址(远程)
  • port-组播端口
  • frequency-发送心跳(向组播地址发送IDP数据包)的时间间隔(单位:ms)。默认值为500
  • dropTime-Membership 在 dropTime (单位:ms)内未收到某一节点的心跳,则将该节点从可用节点列表册除。默认值为3000

   注:组播(Multicast) :一个发送者和多个接收者之间实现一对多的网络连接。一个发送者同时给多个接收者传输相同的数据,只需复制一份相同的数据包。它提高了数据传送效率,减少了骨干网络出现拥塞的可能性。相同组播地址、端口的 Tomcat 节点,可以组成集群下的子集群。
Membership

3.2.2 Receiver
   Receiver:接收器,负责接收消息。

  • className-指定Receiver使用的类(接收器),接收器分为两种:BioReceiver(阻塞式)、NioReceiver(非阻塞式)
  • address-接收消息的地址,如果Tomcat在同一台机器则address为auto,如果在不同机器,则地址为本机器的IP地址
  • port-接收消息的端口,如果不是同一台机器,port端口号可以相同,如果是同一台机器则port不同
  • autoBind-端口的变化区间,如果port为4000,autoBind为100,接收器将在4000-4099间取一个端口,进行监听
  • selectorTimeout-NioReceiver内轮询的超时时间maxThreads-线程池的最大线程数

Receiver

3.2.3 Sender 和 Transport
   Sender:发送器,负责发送消息。Sender内嵌了Transport组件,Transport真正负责发送消息。
   Transport分为两种:bio.PooledultiSender(阻塞式)、nio.PooledParallelSender(非阻塞式)。
Sender

3.2.4 Interceptor
   Interceptor : Cluster的拦截器。
   TcpFailureDetector-网络、系统比较繁忙时,Membership可能无法及时更新可用节点列表,此时TcpFailureDetector可以拦截到某个节点关闭的信息,并尝试通过TCP连接到此节点。以确保此节点真正关闭,从而更新集群可以用节点列表。
Interceptor

3.4 两个 tomcat 的各端口(port)不一致
tomcat01:
服务器端口:8005
tomcat01
接收器端口:5000
tomcat01
连接器端口:8080
tomcat01

tomcat02:
服务器端口:8006
tomcat02
接收器端口:5001
tomcat02
连接器端口:8081
tomcat02

3.5 修改第二个tomcat的startup.bat和catalina.bat
增加环境变量CATALINA_HOME2,值为新的tomcat的地址,把其中的CATALINA_HOME改为CATALINA_HOME2。这样一台计算机可以开启两个tomcat服务器。

4 修改web配置文件
添加标签


http://chatgpt.dhexx.cn/article/93EpThCW.shtml

相关文章

Nginx+tomcat集群

Nginxtomcat集群 定义:在测试环境中有多个tomcat运行这一个项目,需要nginx管理 2特点:1,增加项目访问能力 2,增加服务器性能 3,实现不同负载均衡 3负载均衡:根据每台服务器的性能分配其能承受住…

Tomcat集群配置

1.Tomcat集群 多个 Tomcat 服务器构成了一个集群(Cluster)系统,共同为客户提供服务。集群系统具有以下优点: 高可靠性高性能计算负载平衡 图1-1显示了由 JK插件和两个 Tomcat服务器构成的集群系统。集群系统的正常运作离不开以…

Tomcat 集群搭建入门

简介 由于单台Tomcat的承载能力是有限的,当我们的业务系统用户量比较大,请求压力比较大时,单台Tomcat是扛不住的,这个时候,就需要搭建Tomcat的集群,而目前比较流程的做法就是通过Nginx来实现Tomcat集群的负…

Tomcat 集群部署

Tomcat快速入门 Tomca基本介绍 环境准备 JVM介绍Java业务都是运行在java虚拟机上,java虚拟机简称JVM( java virtual machine) ​ 虚拟机是通过软件模拟出具有完整硬件系统的功能 ​ 为什么Java需要JVM虚拟机 ​ 早期C语言不支持跨平台,如果C语言想…

Tomcat系列之五:Tomcat集群

基于mod_proxy实现负载均衡 在httpd.conf中启用httpd-proxy.conf配置文件&#xff0c; Include /etc/httpd/extra/httpd-proxy.conf 修改httpd-proxy.conf文件&#xff1a; ProxyRequests Off <proxy balancer://lbcluster1>BalancerMember ajp://192.168.1.211:8009 loa…

集群与jetspeed

1 、 集群背景介绍 1.1 术语定义服务软体是b/s或c/s结构的s部分&#xff0c;是为b或c提供服务的服务性软件系统。 服务硬体指提供计算服务的硬件、比如pc机、pc服务器。 服务实体通指服务软体和服务硬体。 客户端指接受服务实体服务的软件或硬件。 1.2 两大关键特性集…

Tomcat集群搭建超详细

TOMCAT集群 目录 TOMCAT集群 1 1 集群 1 1.1 什么是集群 1 1.2 集群的特性 1 1.3 集群的分类 1 1.4 TOMCAT集群配置的优缺点 2 1.5 APACHETOMCAT 2 1.6 环境说明 2 2 软件安装 3 2.1 安装说明 3 2.2 JDK安装 3 2.3 APACHE安装 4 2.4 TOMCAT安装 4 3 集群配置 6 …

JAXB元素详解

JAXB简介 JAXB&#xff08;Java Architecture for XML Binding) 是一个业界的标准&#xff0c;是一项可以根据XML Schema产生Java类的技术。该过程中&#xff0c;JAXB也提供了将XML实例文档反向生成Java对象树的方法&#xff0c;并能将Java对象树的内容重新写到XML实例文档。从…

xml java jaxb_【Java】JAXB操作XML用法详解

什么是JAXB? JAXB(Java Architecture for XML Binding) 是一个业界的标准,是一项可以根据XML Schema产生Java类的技术。在JAX-WS(Java的WebService规范之一)中,JAXB可以实现对象和XML之间相互转换。Unmarshaller类管理将XML数据反序列化为新创建的Java内容树的进程,并可在解…

java jaxb 注解_一、JAXB注解的使用详解

一、首先先上一段测试的代码下面的说明和测试都已这一段代码为主 package shiqingxue.cn.itcast.utils.xml; import javax.xml.bind.annotation.XmlAccessType; import javax.xml.bind.annotation.XmlAccessorType; import javax.xml.bind.annotation.XmlElement; import javax…

JAXB应用实例

博文目录 一 JavaBean和XML相互转换初体验二 JAXB使用基础介绍三 应用实际四 问题补充 正文 过往的项目中数据存储都离不开数据库&#xff0c;不过最近做的一个项目的某些数据&#xff08;比如人员信息、菜单、权限等等&#xff09;却完全没有涉及任何数据库操作&#xff0c;直…

JAXB常用注解讲解(超详细)

简介&#xff1a; JAXB&#xff08;Java Architecture for XML Binding) 是一个业界的标准&#xff0c;是一项可以根据XML Schema产生Java类的技术。该过程中&#xff0c;JAXB也提供了将XML实例文档反向生成Java对象树的方法&#xff0c;并能将Java对象树的内容重新写到XML实例…

OpenCV-Python (Canny边缘检测)

Canny边缘检测是一种非常流行的边缘检测算法&#xff0c;是John Canny在1986年提出的。它是一个多阶段的算法&#xff0c;即由多个步骤构成。 图像降噪计算图像梯度非极大值抑制阈值筛选 原型 OpenCV-Python中Canny函数的原型为&#xff1a; edge cv2.Canny(image, thresh…

python-opencv之边缘检测(cv2.Canny)

理论 Canny边缘检测是一种常用的边缘检测算法&#xff0c;并且他是一个多阶段的算法&#xff0c;分成如下几个阶段&#xff1a; 1. 消除噪声 由于边缘检测容易受到图像中噪声的影响&#xff0c;第一步是用5x5高斯滤波器去除图像中的噪声。 2. 寻找图像的强度梯度 然后对平滑后…

Canny边缘检测算法及实现

Canny边缘检测算法及实现 微信公众号&#xff1a;幼儿园的学霸 目录 文章目录 Canny边缘检测算法及实现目录前言原理步骤实现参考资料 前言 提取图片的边缘信息是底层数字图像处理的基本任务之一.边缘信息对进一步提取高层语义信息有很大的影响. 对图像提取边缘可以通过图像的…

Canny边缘检测算法

Canny是目前最优秀的边缘检测算法&#xff0c;其目标为找到一个最优的边缘&#xff0c;其最优边缘的定义为&#xff1a; 好的检测&#xff1a;算法能够尽可能的标出图像中的实际边缘好的定位&#xff1a;标识出的边缘要与实际图像中的边缘尽可能接近最小响应&#xff1a;图像中…

Canny算子边缘检测原理及实现

写在前面 Canny边缘检是在在1986年提出来的&#xff0c;到今天已经30多年过去了&#xff0c;但Canny算法仍然是图像边缘检测算法中最经典、先进的算法之一。 相比Sobel、Prewitt等算子&#xff0c;Canny算法更为优异。Sobel、Prewitt等算子有如下缺点&#xff1a; 没有充分利…

Opencv(C++)学习系列---Canny边缘检测算法

目录 【1】边缘检测算法流程 【2】Canny算子介绍 【3】完整代码 【1】边缘检测算法流程 使用高斯滤波器来平滑图像&#xff0c;达到滤除噪声的效果。(降噪)计算图像中每个像素点的梯度大小和方向&#xff08;求梯度,与sobel算法求梯度一致&#xff09;使用非极大值抑制&…

OpenCV-Canny边缘检测

作者&#xff1a;翟天保Steven 版权声明&#xff1a;著作权归作者所有&#xff0c;商业转载请联系作者获得授权&#xff0c;非商业转载请注明出处 函数原型 void Canny( InputArray image, OutputArray edges,double threshold1, double threshold2,int apertureSize 3, boo…

Python cv.Canny()方法参数与用法详解

函数原型与参数详解 OpenCV提供了cv.Canny()方法&#xff0c;该方法将输入的原始图像转换为边缘图像。该方法的原型为&#xff1a; cv.Canny(image, threshold1, threshold2[, edges[, apertureSize[, L2gradient]]]) -> edges cv.Canny(dx, dy, threshold1, threshold2[…