繁体   English   中英

如何将具有Apache Tomcat的Java应用程序托管移至云?

[英]How to move java application hosting with apache tomcat to cloud?

我想将我的应用程序移至云。 为此,我需要学习哪些补充知识? 我必须对代码进行哪些修改? 提前致谢!!

要学习的东西:

  1. 水平可扩展性和自动缩放。
  2. 以队列为中心的工作流模式。
  3. 最终的一致性。
  4. 数据库分片。
  5. NoSQL数据库。
  6. 网络延迟及其对性能的影响。
  7. CDN。
  8. 持续集成和持续部署。

我建议您在“云架构模式:使用Microsoft Azure”一书中http://www.amazon.com/Cloud-Architecture-Patterns-Using-Microsoft/dp/1449319777

您可能需要在应用程序中进行的修改:

  1. 使应用程序节点变为无状态:无需在应用程序中保留任何会话。 看看Spring Session http://projects.spring.io/spring-session/ 它可以将Redis用作会话存储。 另一个选择是使用粘性会话,但是这种方法降低了可伸缩性。
  2. 由于您的应用程序节点是无状态的,并且由于活动扩展而可以随时删除,因此您无法将硬盘驱动器用于用户上传的图像(其他文件)。 您可能需要使用外部文件存储,例如S3 http://aws.amazon.com/s3/
  3. 您的数据库必须位于单独的节点上。
  4. 您需要使用集中式缓存,因为当其他节点发生更改(可能导致数据不一致)时,本地缓存不会失效。 看看Amazon ElastiCache http://aws.amazon.com/elasticache/或Hazelcast http://hazelcast.com/
  5. 如果现在使用Java同步机制(例如,同步块或锁定)来控制并发,则必须记住,需要在多个节点之间进行同步。 您可能需要使用分布式锁定服务(Terracotta或Hazelcast)
  6. 您需要良好的迁移和回滚计划。

暂无
暂无

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

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