繁体   English   中英

最佳实践:部署Angular App和Spring REST Api

[英]Best Practice:Deploying Angular App and Spring REST Api

我正在尝试部署一个与spring rest api通信的有角度的应用程序。

spring应用程序托管在tomcat上,并且可以正常运行。

我的角度应用程序是一种简单的形式,在理论上也可以使用。 现在,我尝试将它们都部署在本地系统上,并将有角度的发布数据发送到tomcat服务器,该服务器将在其中由spring应用程序处理。

由于这将在接下来的几个月中不断发展,因此我正在寻找有关部署最佳实践的建议。 是否建议同时从tomcat容器中进行服务,还是应该分开关注? 我也希望通过此实验了解可伸缩性和体系结构,因此使用单独的vms,多个服务器,负载平衡等,我很想了解并获得正确方向的任何有用建议或指示。 谢谢。

如果您希望应用程序能够大规模扩展(更多服务,频繁更改),则将用户界面与核心业务逻辑(后端)分开是一个不错的选择。

您迈出了第一步。

这是我的经验,我可以放心地说“推荐”设置:

  • Angular应用程序和基于Spring的REST应用程序是Web应用程序的两个完全不同的组件。 它们是围绕不同的关注环境而开发的。 如果您分别处理(开发,构建和部署)它们,则可以很好地维护它们而不会破坏整个应用程序。

  • 将用户界面与核心业务逻辑分开,还可以帮助您将不同的技术堆栈用于不同的目的。 什么对构建UI更有效,但可能不适用于后端,反之亦然

  • 您提到这些组件将不断发展。 通常,它们是分开发展的。 对于单独的部署管道(分别构建和部署),这是最好的情况。

  • Angular应用程序可以托管在node服务器上,而基于Spring的后端API在Tomcat实例上运行。 这还将帮助您根据需要更多关注的组件分别对这些组件进行负载平衡。

  • 由于这种分离,整个应用程序在停机期间不会停机。 REST API可能出于维护目的或由于故障而关闭,但应用程序的UI可能仍处于启动状态,并且正在处理一些不依赖于后端的请求。 这比根本不可用的应用程序要好得多。

  • 可以在UI层使用诸如功能切换之类的技术来禁用部分功能,具体取决于后端或完成一半。 尽管可以在单个可部署的应用程序中执行此操作,但是当UI与后端逻辑分离时,更易于理解和管理。 后端可以有自己的功能切换框架(不同于UI层的框架)。

  • 将来,您可以向外界(或其他应用程序)开放REST API,并添加Angular应用程序可能不需要的更多服务。 潜在地,一个专门的团队可能会在设置中的REST API组件上工作,并且不将它们公开给Angular代码可能很有意义。

  • 我的最爱:将应用程序的面向公众的Angular组件视为Spring应用程序(REST API)的“客户端”。 这使得REST应用程序是“通用的”,并且松散地与Angular组件耦合,从长远来看,Angular组件具有巨大的优势。

话虽如此,在初始阶段都可以从单个部署开始,但是您必须准备好在第一时间提取组件。

暂无
暂无

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

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