我们希望为当前正在使用的 Tomcat Web 应用启用某种形式的负载平衡。不幸的是,我对 Tomcat 负载平衡、集群等几乎一无所知。
有人可以分享涵盖不同替代方案的资源,提供一些方便的指示(也许某些解决方案在某些类型的环境中效果更好?)或只是一些关于尝试解决方案的提示吗?我们目前正在运行 Tomcat 5.5,如果这会对功能产生任何影响,但升级到 6 没有任何重大障碍。
答案1
实现这一目标的方法有很多...这至少取决于:
- 如果一台服务器/tomcat崩溃,您是否使用必须保存的上下文/会话状态?
- 你们接受商业解决方案吗?
一些解决方案(从最便宜/简单到最昂贵):
DNS 循环:客户端获取一个服务器 IP,下一个客户端获取另一个服务器 IP,依此类推。
Windows:NLB。随 Windows 提供,免费。
Linux:LVS(Linux 虚拟服务器)
商业:Evidian 的 Safekit
设备:F5、Alteon、Radware
你也可以使用 Apache 作为前端来分散负载
答案2
使用 Terracotta 快速、可靠的 Web 会话插件,即可获得无状态 Web 架构的可扩展性优势,而无需超载数据库或重写应用程序。Terracotta for Sessions 可与您喜欢的 Web 框架和您自己的自定义会话对象配合使用。
这网络会话教程列出了您评估产品(FOSS)时需要采取的五个简单步骤。