繁体   English   中英

Microsoft Azure中Tomcat的水平扩展

[英]Horizontal Scaling of Tomcat in Microsoft Azure

我正在安静的时间里工作,但仍然没有结论。

我想对Microsoft Azure中的Tomcat实例(1,2,3,...一种服务的Tomcat实例)进行水平缩放。 我阅读了许多有关使用Tomcat进行会话复制,群集等的文章。 由于Azure不支持多播,所以没有简单的方法来对Tomcat进行群集。 粘性会话也是没有选择的,因为Azure会进行轮询负载平衡。 设置两项服务-一种使用Terracotta或Apache mod_jk-另一项使用Tomcat实例对我来说似乎太过强大了(即使可行)...

这有可能吗?

在此先感谢您阅读和回答我的问题。 每个评论/想法都受到高度赞赏。

您可以使用新的appFabric缓存服务,或者有在Azure上使用Memcache的示例,这会有所帮助吗?

http://code.msdn.microsoft.com/winazurememcached

您为什么会觉得运行2种服务实在是过头了? 如果横向扩展到n个 Tomcat实例没有问题,那么在我的书中添加另一个服务来进行负载分配是一个完全可以接受的解决方案。 通过在至少2个实例上运行该服务,该服务本身就可以满足Azure SLA要求:正常运行时间将与将要在Azure上获得的运行时间一样长,并且可以避免SPoF(单点故障)。

您可以使用诸如terracotta之类的产品,但是编写一个简单的套接字服务器将HTTP会话路由回到在Windows Azure中运行的特定实例也非常简单。 您将必须知道节点循环,但这是完全可行的。

请注意,memcached也需要附加的Azure服务(Web角色),而appFabric缓存服务则不需要(但也具有与其相关的成本)。 我不知道Tomcat,但是对于IIS,您可以轻松地将会话状态从内存中移到持久化(SQL Azure或Azure存储)。 有一点要注意:对于大量站点,如果将会话信息存储在Azure存储中,则Azure存储的交易成本实际上可能成为部署的成本驱动因素。 SQL Azure可能是更具成本效益的解决方案,但另一方面,您的解决方案可能无法立即获得支持。

我认为您不能在Azure上运行Tomcat。 即使可以(使用虚拟机角色),在Amazon EC2的Linux VM上运行它可能也会便宜一些。

编辑

我看到可以使用Tomcat解决方案加速器来实现。 但请查看免责声明:

提供此解决方案加速器仅供参考,Microsoft或Infosys不作任何明示或暗示的保证。

这是不受支持的解决方案。 我知道通常很难质疑管理决策。 但是,如果有便宜的受支持的替代品出现,则在生产系统中使用不受支持的软件通常不是一个好主意。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM