我有一个应用程序,该应用程序打包为部署在WebSphere上的单耳文件。在软件包内部,代码被组织为UI文件,业务逻辑文件和数据库相关文件。现在,这是单片应用程序还是3层体系结构?
有什么区别?
答案 0 :(得分:3)
您正在比较错误的事情。需要将单片应用程序与微服务进行比较。在整体应用中;您将所有功能部件/ api端点部署在单个EAR / WAR文件中;即单个JVM。在微服务中,它们部署在多个JVM中。请注意,在Monolithic架构中,您还暴露了多个REST端点。
3层,2层或N层体系结构是不同的概念。它说您的应用程序划分了多少个子系统/模块,如数据库层,客户端层,应用程序逻辑层。因此,单片和微服务都可以是n层应用程序。
答案 1 :(得分:0)
请记住,EAR 及其中的内容是一种包装选择。您的同一个应用程序可以部署在一台或多台服务器上的多个 Java EE 容器中的多个耳朵中。 EJB-jars 和 WARs 旨在做到这一点。使用 Java EE,您可以根据合理的情况选择如何跨容器和节点分发应用程序。
从技术上讲,分层应用程序是可以独立部署、分发和访问各层的应用程序。 IE。我的业务逻辑可以位于 9 个 ejb 容器中的 5 个服务器上,并且可以通过 3 个用户界面访问,这些用户界面可以是桌面、移动、Web 等。也可能是不同应用程序的一部分。
单体应用更传统的定义是不分层的应用程序。特别是它的部分不能在运行时组合到其他应用程序中