Tomcat集群能带来什么?
1、提高服务的性能,并发能力,以及高可用性;
(首先,一台机子一个Tomcat,如果你用单机部署多Tomcat的话,他们会共享网卡、内存、磁盘IO等,其性能依旧不行,且一台机子的HTTP线程池是有限的,多机的话可以对应处理并发,对于高可用性,Nginx下挂载多台Tomcat,当一台宕机时,可以直接将该节点取消,转接到可用节点)
2、提供项目架构的横向扩展能力;
(类似天猫双11,通过动态添加Tomcat,Nginx热部署完成横向扩展功能)
Tomcat集群实现原理
(一步登天)通过Nginx负载均衡进行请求转发
Tomcat集群新旧框架对比解析
单机或常用框架
一个很合理的架构思路,小白也需要了解一下,一眼就能读懂。
转为集群后的“理想”架构
Tomcat集群可能带来的新问题?
1、由上图,有经验的朋友一眼已经看出了Session问题,Session登录信息存储及读取的问题
2、服务器定时任务并发的问题(类似电商类的订单定时关闭任务,可能存在并发问题)
当然,也是有一些解决方案:
类似:采用nginx ip hash policy
优点:可以不改变现有技术架构,直接实现横向扩展(省事)
缺点:
1、导致服务器请求(负载)不平均(完全依赖ip hash的结果)
2、在Ip变化的环境下无法服务
那么我们理应采用第二种,第一种在正常的公司与团队都很少采用,而也由此演变了比较合理的集群架构
通过Session Server解决单个服务器对应单个Session的问题,后期还要编码处理单点登录,且Redis还要处理分布式锁(防止多机同时启动定时任务,并发问题等)
这里要注意的是,架构的演进是和项目的功能、业务与问题相关的,而不是理所当然的照搬。
如果本文对你有所帮助,欢迎关注个人技术公众号,或者点赞,谢谢。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。