tomcat负载均衡问题

nginx+tomcat+redis集群实现负载均衡和session同步的步骤和问题处理方法 最近在研究nginx+tomcat的负载均衡功能, 因为需要实现failover时用户无感知的效果,所以我考虑使用tomcat的session同步方式来实现。网上能查到的东西我就直接贴链接了,我把搭建这套系统的过程写一下,遇到的坑的处理方式说明一下。我使用的系统环境 Centos6.4 和 Centos7.2 Tomat7.0.29 JDK1.8.0_111-b14 Red 阅读详情

Tomcat集群配置学习篇-----分布式应用

转载自http://blog.youkuaiyun.com/yipanbo/article/details/44079083

现目前基于javaWeb开发的应用系统已经比比皆是,尤其是电子商务网站,要想网站发展壮大,那么必然就得能够承受住庞大的网站访问量;大家知道如果服务器访问量过大,就会出现服应用务器崩溃的情况,这个时候怎么办,难道就只能去重启服务器吗?好,如果是一般的小型公益网站到也无所谓,但如果是比如像大型航空公司售票等电子商务网站,每天每小时都有大量的订单业务,如果这些售票系统一旦崩溃后,再去重启,这些时间和客户的损失就直接会影响到航空公司的利益,这些损失如何去避免呢。

别担心,不管是目前IBM的webSphere还是大众化的tomcat服务器,都为我们提供了一种通用的解决方式,就是多台服务器来分担访问量,这样在一个服务器上的压力就会减小很多,你可以根据自己的需求去配置任意多的服务器来支撑你的应用系统,如果一台服务崩溃了,那么另外的应用服务器依然可以继续支持应用继续服务。多应用服务器的简单流程图大致如下:


为了实现这个原理我们就需要解决两个问题:

1:如何实现多应用服务器间的session共享:(一台服务器崩溃,另外一台服务器可以继续支持)

2:如何分发请求到各个应用服务器实现压力分解:(这里的解决方案是用apache做 web服务器)

下面我们就是实际行动来看看如何实现这种实现。

环境配置:

App应用服务器apache-tomcat-7.0.52-1 

web服务器:apache的apache 2.0.55

Java环境:jdk1.6

系统环境:winxp系统


1) web服务器配置

首先安装apache的web服务器:

apache服务器和tomcat的连接方法其实有三种:mod_JK、http_proxy和ajp_proxy。

一:软件环境
   1. Apache: apache 2.0.55 (由http://httpd.apache.org/进入下载)(点击下载apache 2.0.55)
   2. Tomcat: apache-tomcat-7.0.52-1
   3. mod_jk: 在页面 http://tomcat.apache.org/   Download 标题下找到 Tomcat Connectors 链接进入(点击下载mod_jk-apache-2.0.55.so),看起来像是个Unix/Linux下的动态库,实际应是个Win32 的 DLL 动态库,大概是为保持不同平台配置的一致性,才用了这个扩展名。

二:负载均衡
 用Apache进行分流,把请求按照权重以及当时负荷分tomcat1,tomcat2...去处理

1. 安装apache,tomcat
   我把Apache安装在D:/Apache Group/Apache2
  解压两分Tomcat, 分别在 D:/Apache Group/apache-tomcat-7.0.52-1,D:/Apache Group/apache-tomcat-7.0.52-1

2.修改Apache配置文件http.conf

   在apache安装目录下conf目录中找到http.conf,在文件最后加上下面一句话就可以了

   include conf/mod_jk.conf

3. http.conf 同目录下新建mod_jk.conf文件,内容如下

[html]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. #加载mod_jk Module     
  2. LoadModule jk_module modules/mod_jk-apache-2.0.55.so     
  3.     
  4. #指定 workers.properties文件路径     
  5. JkWorkersFile conf/workers.properties     
  6.     
  7. #指定那些请求交给tomcat处理,"controller"为在workers.propertise里指定的负载分配控制器     
  8. JkMount /*.jsp controller    
如果还要指定*.do也进行分流就再加一行
JkMount /*.do controller

如果你想对所有的请求进行分流只需要写成
JkMount /* controller


4. 在http.conf同目录下新建 workers.properties文件

[html]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. worker.list = controller,tomcat1,tomcat2  #server 列表      
  2. #========tomcat1========      
  3. worker.tomcat1.port=8019       #ajp13 端口号,在tomcat下server.xml配置,默认8009      
  4. worker.tomcat1.host=localhost  #tomcat的主机地址,如不为本机,请填写ip地址      
  5. worker.tomcat1.type=ajp13      
  6. worker.tomcat1.lbfactor = 1    #server的加权比重,值越高,分得的请求越多      
  7.      
  8. #========tomcat2========      
  9. worker.tomcat2.port=8029       #ajp13 端口号,在tomcat下server.xml配置,默认8009      
  10. worker.tomcat2.host=localhost  #tomcat的主机地址,如不为本机,请填写ip地址      
  11. worker.tomcat2.type=ajp13      
  12. worker.tomcat2.lbfactor = 2    #server的加权比重,值越高,分得的请求越多      
  13.      
  14. #========controller,负载均衡控制器========      
  15. worker.controller.type=lb      
  16. worker.controller.balanced_workers=tomcat1,tomcat2   #指定分担请求的tomcat      
  17. worker.controller.sticky_session=1  

5. 修改tomcat配置文件server.xml
如果你是水平集群,即在不同电脑上安装tomcat,tomcat的安装数量为一个,可以不必修改tomcat配置文件.我这里是在同一台电脑上安装两个tomcat,实现的是垂直集群方式,所以必须修改其中一个的设置,以避免端口冲突,按照参考文章是把原来以9开头的端口号改为以9开头端口号,但是在我机器上如果以9开头的端口号,例如9080、9082会与我的WebSphere Application Server配置冲突,所以我这里采取的策略是把原来端口号的第三位改为1,如8080改为8180。

打开tomcat2/conf/server.xml文件

1) 将关闭Tomcat的监听端口改成由8005改为8105
即把
 <Server port="8005" shutdown="SHUTDOWN">
改为
 <Server port="8105" shutdown="SHUTDOWN">

2) 把http服务端口号由8080改为8180
找到
 <!-- Define a non-SSL HTTP/1.1 Connector on port 8080 -->
    <CONNECTOR port="8080" 

把这里的8080改为8180

3) 把AJP端口号由8009改为8109
找到
 <!-- Define an AJP 1.3 Connector on port 8009 -->
    <CONNECTOR port="8009"

把这里的8009改为8109

4) 把 HTTP 代理端口从8082改为8182(这个配置默认是被注释掉的,可跳过这一步)
找到
<CONNECTOR port="8082"
把这里的8082改为8182

5) 编写一个测试 jsp
建立一个目录TestCluster,里面新建一个test.jsp,内容为


把TestCluster放到tomcat1,tomcat2的webapps下

6) 启动apache,tomcat1,tomcat2,进行测试
通过  http://localhost/TestCluster/test.jsp  访问,多刷新几次页面,查看Tomcat1和Tomcat2的窗口,你将可以看到打印了一行行"===========================",并且从统计上来说,大约在tomcat2打印的数量是在Tomcat1中的两倍,可以看到请求会被tomcat1,tomcat2按照不同的权重分流处理,实现了负载均衡。
从零开始:用Xilinx FPGA实现RISC-V单周期CPU(附完整Verilog代码) 本文详细介绍了如何使用Xilinx FPGA从零开始实现RISC-V单周期CPU,包括开发环境搭建、核心架构设计、Verilog代码实现及功能验证。通过实战指南和完整代码示例,帮助开发者掌握RISC-V CPU设计的关键技术,适用于嵌入式系统和定制化计算场景。 阅读详情

相关推荐

Office如何通过VSTO进行WORD插件开发?

VSTO(Visual Studio Tools for Office )是VBA的替代,是一套用于创建自定义Office应用程序的Visual Studio工具包。VSTO可以用Visual Basic 或者Visual C#扩展Office应用程序(例如Word、Excel、PPT)。本文通过VSTO进行Word插件开发总结,并进行记录。

【cacrle】的博客 7322

Tomcat基础《三》----负载均衡

Tomcat基础《一》----WEB技术 Tomcat基础《二》----Tomcat基础介绍 负载均衡 动态服务器的问题,往往就是并发能力太弱,往往需要多台动态服务器一起提供服务。如何把并发的压 力分摊,这就需要调度,采用一定的调度策略,将请求分发给不同的服务器,这就是Load Balance负载 均衡。 当单机的Tomcat,演化出多机多级部署的时候,一个问题便凸显出来,这就是Session。而...

李凯的博客 781

详解Nacos集群搭建

在我们日常的开发当中,用的都是单点Nacos,这种模式,我们自己开发测试玩一玩还可以,但是到了企业的生产环境之下,你还这么玩的话,那肯定是要出大问题了。因为在企业当中,我们更加强调的是高可用,所以在企业的生产环境下,Nacos一定要做成个集群。

博客 1万+

部署Tomcat及其负载均衡

Tomcat服务器是免费的开放源代码的web应用服务器,属于轻量级应用服务器、在中小型系统和并发量访问用户不是很多的场合下被普遍使用,是开发和调试JSP程序的首选。

大虾好吃吗 1395

ESP32之 ESP-IDF + Clion 开发环境搭建(二)—— Linux版

本文介绍了 Linux 下,使用Clion IDE 用官方 ESP-IDF 开发包进行 ESP32 开发的环境搭建

Augtons 的博客 6098

2024年下半年软考系统架构设计师案例分析题

摘要: 本文包含两个软件系统设计案例。案例一讨论了大语言模型智能系统的质量属性需求分析,识别了功能性、性能、可靠性等需求,并对比了ping/echo和心跳两种故障检测策略。案例二探讨了购物网站的缓存设计,包括Cache-Aside策略的数据读取/更新流程,以及解决缓存一致性的多种方案(消息队列、数据库插件、锁机制等)。此外还涉及Elasticsearch分词器的特点比较和RESTful架构实现前后端分离的原理。这些案例展示了软件架构设计中的质量属性权衡、缓存策略选择及系统解耦等关键技术考量。<|end

卿着飞翔 1049

部署Tomcat负载均衡

一、理论部分 Tomcat介绍 Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。由于有了Sun 的参与和支持,最新的Servlet 和JSP 规范总是能在Tomcat 中得到体现,Tomcat 5支持最新的Servlet 2.4 和JSP 2.0 规范...

江晓龙的博客 7万+

YOLO26 实战全流程:从数据集标注到端到端无NMS推理(完整版,附ProgLoss核心调参技巧+避坑指南)

本章节是实战经验的精华❌ 数据集标注不规范,导致模型精度低 → ✅ 严格遵守工业级标注规范,标注框紧贴目标边缘,不要漏标/多标;❌ 训练时未使用预训练权重,导致收敛极慢 → ✅ 必须开启,预训练权重能让模型快速收敛;❌ ProgLoss参数调整幅度过大,导致训练崩溃 → ✅ 每次只调整一个参数,幅度±0.02即可,循序渐进;❌ 推理时强行添加NMS参数,画蛇添足 → ✅ YOLO26无需NMS,推理命令中不要加conf/iou参数,否则会降低推理速度;

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 1141

Tomcat使用及负载均衡(最全源码安装及配置使用教程)

Tomcat,全称Apache Tomcat,是由Apache软件基金会下属的Jakarta项目开发的一个Servlet容器,也是开源的轻量级Web应用服务器。它最初由Sun的软件架构师詹姆斯·邓肯·戴维森开发,并得到了Sun和其他一些公司及个人的共同支持。Tomcat不仅遵循最新的Servlet和JSP规。tomcat最全操作

weixin_64409959的博客 1582

Java调用YOLOv26全解析:从ONNX模型部署到工业质检实战

本文分享了工业自动化领域使用Java调用YOLOv26进行零件缺陷检测的完整方案。通过YOLOv26s模型结合ONNX Runtime Java部署,误检率和漏检率显著降低(分别从12%降至2.1%,8%降至0.8%)。文章详细介绍了方案选型理由、环境配置避坑指南、ONNX模型导出步骤,以及Maven依赖配置(分CPU/GPU版本)。该方案直接在上位机Java环境中运行,避免了跨语言调用损耗,适合工业质检场景部署,提供了可复用的性能优化和多线程推理实现。

2601_94871597的博客 1108

2026年1至9月武汉市房地产价格深度分析报告

本报告基于2026年1月至9月武汉市实际成交案例,从成交价格、区域分布、户型结构、价格走势等维度进行深度分析。数据来源包括武汉市住房保障和房屋管理局备案数据、主要中介机构成交记录及典型楼盘网签案例,覆盖全市15个行政区及主要功能板块。

王国平的博客 334

Tomcat 部署及优化

目录引言一、Tomcat 概述1. Tmocat 由来2. Tomcat 简介3. Tomcat 核心组件二、Tomcat 处理请求过程 引言 Tomcat 服务器是一个免费的开放源代码的 Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选,因其开源、占用系统资源少、跨平台等特性被广大开发人员深受喜爱。 一、Tomcat 概述 1. Tmocat 由来 Tomcat 最初是由 Sun 的软件架构师詹姆斯·邓肯·戴维森开发的。后

不要因为走的太远而忘了为什么出发 3511

《UDS协议从入门到精通》系列——图解0x85:控制DTC的设置

如何让ECU停止或恢复DTC状态位更新?有哪些注意点?图解+示例教你快速上手UDS 0x85服务!!

车载系统攻城狮 3864

Tomcat(120)如何在Tomcat中解决负载均衡问题?

通过配置外部负载均衡器(如Nginx、Apache HTTP Server)进行负载均衡,监控和日志分析,处理会话粘性问题,以及配置Tomcat集群和会话复制,可以有效地解决Tomcat中的负载均衡问题。上述配置和代码示例提供了详细的步骤和解决方案,帮助你在实际应用中解决负载均衡相关问题。

qq_43012298的博客 595

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

Matlab实现电力市场出清电价计算:线性规划与影子价格

电力市场交易中,出清电价是核心信号,其本质可归结为一个线性规划问题。通过构建目标函数与约束条件,影子价格反映了功率平衡约束的边际成本,即系统统一出清电价。借助Matlab优化工具箱,利用linprog或optimproblem可以快速搭建最小算例,实现从单时段到24小时动态出清的仿真计算。这一方法不仅有助于理解边际机组与电价形成机制,还可用于课程设计、项目验证及后续扩展安全约束模型。本文从基本概念出发,逐步展示完整代码与调试经验,帮助初学者掌握电力市场出清电价的工程实现路径。

weixin_34379433的博客 316

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

Nginx+Tomcat负载均衡之session问题

Nginx与Tomcat做负载均衡的时候有一个重要的问题必须考虑,那就是Session。 试想一下,假设Nginx采用轮询策略,应用被部署到tomcat1和tomcat2上,用户访问tomcat1时被要求先登录,于是用户登录。接下来用户再次发起应用的请求时,会由tocmat2进行处理(因为轮询,请求被依次交替转发到tomcat1和tomca...

weixin_34185320的博客 321

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

Nginx+tomcat负载均衡session问题解决

Nginx+tomcat负载均衡session问题解决 博客分类:  nginx   文章来源:http://hi.baidu.com/softsystem/blog/item/c7f5d42c3f0af13d349bf7bd.html  Java代码   测试环境:   server1   服务器上安装了 nginx + tomcat01

我喂自己袋盐 1710

关于tomcat负载均衡多个tomcat的安装问题

前几日闲着无事,就配一个基于tomcat的负载均衡的实验,主要参考的是kypfos的博文 http://blog.youkuaiyun.com/kypfos/archive/2008/10/15/3081330.aspx 其中在安装多个tomcat时,按照博文中方法发现如下问题: 即使设置了不同的端口号8180、8105、8109等,但是在启动tomcat2时却发现仍旧是采用了8080、8005、80...

gly_ustb的博客 136

介绍一下再Apache下的Tomcat负载均衡的一些使用问题

  在负载均衡技术中,硬件设备是比较昂贵的,对于负载均衡的学习者如果不是在企业中应用或者是学员中学习,很少有机会能碰到实际操作的训练。(http://xz.8682222.com)所以,很多朋友都会选择软件方面的设置进行研究。现在我们就来介绍一下再Apache下的Tomcat负载均衡的一些使用问题   其实无论是分布式,数据缓存,还是负载均衡,无非就是改善网站的性能瓶颈,在网站源码不做...

banyigmpap71470的专栏 136

Apache+Tomcat负载均衡问题集锦

之前在windows 环境下搭建了下apache+tomcat负载均衡(不会的可以参考之前的文档,文档对于linux和windows都适用),一帆风顺,没有出现任何问题,今天尝试着在linux下搭建了下,其中遇到几个问题,在这里给大家分享下。         linux环境,三个redhat6.5 x86_64,其中192.168.1.2安装apache,192.168.1.3和192.168.

枫飘瞬间 3253

nginx配置负载均衡,tomcat宕机响应缓慢,自动切换的问题

用了nginx负载均衡后,在两台tomcat正常运行的情况下,访问http://localhost 速度非常迅速,通过测试程序也可以看出是得到的负载均衡的效果,但是我们试验性的把其中一台tomcat(server localhost:8080)关闭后,再查看http://localhost,发现反应呈现了一半反映时间快,一半反映时间非常非常慢的情况,但是最后都能得到正确结果。 解决办法: 问题解决,主要是proxy_connect_timeout这个参数, ...

zhu_zhu_xia的博客 1167

Nginx + Tomcat 负载均衡中webservice问题认识和处理

前言:由于项目中存在发布

纸上得来终觉浅,绝知此事要躬行 1万+

nginx 负载均衡时,一台tomcat宕机时的问题 自动切换

 用了nginx负载均衡后,在两台tomcat正常运行的情况下,访问http://localhost 速度非常迅速,通过测试程序也可以看出是得到的负载均衡的效果,但是我们试验性的把其中一台tomcat(server localhost:8080)关闭后,再查看http://localhost,发现反应呈现了一半反映时间快,一半反映时间非常非常慢的情况,但是最后都能得到正确结果. 解决办法:问题解决...

papima的博客 6065

Tomcat集群与Nginx负载均衡配置及所带来的问题(windows和linux)

1

成的博客 5744

nginx+tocmat 负载均衡时,一台tomcat宕机时的问题

nginx+tocmat 负载均衡时,一台tomcat宕机时的问题在windows下作nginx负载均衡测试。我的nginx的配置文件如下:worker_processes 1;events { worker_connections 1024;}http { include mime.types; default_type applicat...

weixin_33786077的博客 144
上一篇: kendoUI grid表格填充
下一篇: 线程池和定时器
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值