tomcat会话复制,无需多播
时间:2020-03-06 14:55:35 来源:igfitidea点击:
我计划使用2个在主机提供商处租用的专用根服务器。这些机器将在集群中运行tomcat 6.
如果以后要添加其他计算机,则不太可能通过多播访问它们,因为它们位于不同的子网中。
是否可以在没有多播的情况下运行tomcat? Tomcat 6群集的所有教程都包含多播心跳。有没有SimpleTcpCluster的替代品?
还是其他替代方案在这种情况下更合适?
解决方案
由于无法控制两台服务器之间的距离(它们可能位于两个不同的数据中心),并且没有专用的服务器间通信线路,因此,我宁愿通过轮询DNS或者将客户端重定向到www1.yourdomain的负载均衡器来运行它们.xxx或者www2.yourdomain.xxx,并仔细处理服务器通信。
如果服务器之间的通信频繁,则我们可能希望改变架构,优化应用程序的结构以"适合"一台服务器(至少一会儿),或者去控制位置,进行专用托管,服务器的距离和电缆。否则,服务器间通信,心跳等将使用与之通信的客户端相同的通道(例如,相同的网段),这可能会使每个人的速度变慢。
如果我们真的期望有这么多的负担,我想至少要涉及一些钱,不是吗?与没有控制线路或者专用线路的分布式群集的设置相比,明智地使用它并使用设置技巧来解决问题更加困难。
在给出其他答案后看到问题的评论,我很困惑问题是什么...关于会话复制吗?集群通讯?最好陈述问题,而不是计划中的解决方案本身就是问题。
我将陈述一些可能的问题以及快速答案:
应用程序占用大量CPU / RAM
- 对其进行分析,优化,然后重试
- 购买更大/更好的服务器
应用程序占用大量带宽
- 使用我们在问题中提到的chegoo群集最有可能使情况变得更糟,因为服务器间通信使用的同一个(隐蔽的)通道与客户端-服务器通信使用相同的(隐蔽的)通道
- 我们可能能够分离不同类型的带宽,例如通过使动态内容与静态内容由不同的服务器提供服务:此处无需服务器间通信
应用程序占用大量存储空间
- 获得更大的服务器
- 进行专用托管,并根据需要装入尽可能多的旋转磁盘
- 看看其他型号(例如Amazon S3存储)是否适合我们
应用程序可能会被加斜线
- 确定上述哪些因素(或者其他因素)正在确定应用程序的限制,请解决该问题。
我们只需要会话复制吗?
- Tomcats SessionManager界面很小,我们可以轻松实现/扩展。使用它进行我们喜欢的任何会话复制。有关更多信息,请参见StandardManager文档和实现。
更多想法
- 查看更灵活的设置,例如EC2(amazon),Google产品或者其他云计算设置。利用他们自己的云存储和服务器间通信设施。注意不要过多地依赖于此基础结构。
我当然已经忘记了一些东西,但这可能会提供一些起点。更具体地了解潜在问题的性质,以获得更好的答案:)