社区
Java EE
帖子详情
nginx整合tomcat集群节点故障无法切换的问题
swing wang
2018-10-31 10:39:33
这段时间,参与一个tomcat集群的工作出现如下故障
当tomcat-A(以下称T-A)关停时,通过nginx能正常访问tomcat-B(T-B),使业务不受影响
但是当T-A重新启动时,启动大约需要3分钟。这3分钟内,通过nginx无法访问任何一个服务,但是直接访问T-B正常。
本人怀疑是nginx的配置问题。
请大神帮忙看看。
...全文
341
2
打赏
收藏
nginx整合tomcat集群节点故障无法切换的问题
这段时间,参与一个tomcat集群的工作出现如下故障 当tomcat-A(以下称T-A)关停时,通过nginx能正常访问tomcat-B(T-B),使业务不受影响 但是当T-A重新启动时,启动大约需要3分钟。这3分钟内,通过nginx无法访问任何一个服务,但是直接访问T-B正常。 本人怀疑是nginx的配置问题。 请大神帮忙看看。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
2 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
大虾哥哥
2019-06-01
打赏
举报
回复
有个麻烦的方式。当某个tomcat还没有完全启动起来时,更新nginx.conf配置文件,在upstream里面先把它移除,然后nginx -s reload 。当tomcat完全启动之后,在upstream里面添加进来,再nginx -s reload
swing wang
2018-10-31
打赏
举报
回复
补充一下,刚才和同事讨论了一下,补充了一些资料。 tomcat启动时,所需端口(默认8080)在启动开始时就已经开始占用并使用,此时nginx没有进行“深入”健康检查,只知道8080端口已经开始使用,所以就将请求往这个节点(正在启动的节点)上转发,导致的问题。 请大神协助确认下,是不是这个原因。 另,有没有完善这种问题的nginx完善方案?
Linux系统安装部署jdk+
Tomcat
+Mysql+
Nginx
+
Tomcat
集群
搭建+项目发布
课程视频中出现的所有配套软件均可下载,下载地址笔记中有! 1. Linux系统安装以及远程操作工具安装 2.... Mysql安装以及开发远程访问 6、
Nginx
概述以及使用并通过
Nginx
实现
Tomcat
集群
的搭建等功能
Nginx
+
Tomcat
集群
的
故障
迁移实验
经过前面的
集群
实施,已经将
Nginx
+
Tomcat
的
集群
环境给配置起来了,接着继续进行
集群
的
故障
转移实验. 这里的
故障
转移包括
节点
关闭情况和
节点
宕机情况的
故障
转移. 首先对于
节点
关闭或加入的情况,比如某一
Tomcat
节点
关闭或重启的情况,在这种情况下,
nginx
可以快速识别到已停用或新加入的
节点
,基本上可以做到无延时的
故障
转移.所以这里主要实验的是
tomcat
宕机的情况,比如tomca
Nginx
+
Tomcat
集群
环境搭建
提高服务的性能实际公司线上生产环境都会选择一台机器部署一个
tomcat
,多台机器完成
集群
,毕竟一台机器部署多个
tomcat
还是有一些共享瓶颈的,例如它们的网卡只有一个,内存和磁盘IO等都是共用的。而多台机器共同提供相同的服务,能够充分利用每一台机器的资源,自然能够提高服务的性能。并发能力很好理解,一台
tomcat
的http线程池是有限的,那么两台能承载的http线程自然是一台的2倍。高可用性简单理解在
Nginx
下面挂了多台
tomcat
节点
,当其中一台
tomcat
挂掉的时候,那么我们可以把这个
节点
从
Nginx
部署
tomcat
、
nginx
整合
tomcat
、
tomcat
+memcached
集群
Tomcat
服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。(
Tomcat
不太适合高并发,解决方法,增加后端数量)
tomcat
启动前需要配置JDK环境变量,如果没有配置JDK的环境变量,那么
tomcat
启动的时候就会报错,也就是
无法
启动。JDK 是 Java 语言的软件开发工具包,主要用于移动设备、嵌入式设备上的java应用程序。
Linux部署
nginx
+
tomcat
集群
Linux部署
nginx
+
tomcat
集群
Java EE
67,513
社区成员
225,880
社区内容
发帖
与我相关
我的任务
Java EE
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
复制链接
扫一扫
分享
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章