【发布时间】:2010-08-22 16:07:38
【问题描述】:
多层和/或分布式应用程序,它们具有相同的含义吗?
当我们谈论这些应用程序中的层时,是物理层(数据库、浏览器、Web 服务器……)还是逻辑层(数据访问层、业务层……)?
【问题讨论】:
-
是的,这真的取决于您如何构建应用程序。
标签: distributed layer multi-tier
多层和/或分布式应用程序,它们具有相同的含义吗?
当我们谈论这些应用程序中的层时,是物理层(数据库、浏览器、Web 服务器……)还是逻辑层(数据访问层、业务层……)?
【问题讨论】:
标签: distributed layer multi-tier
也许这两句话确实直观地传达了分布式和多层之间的区别:
在一种情况下,相同的处理会在多个节点上进行复制。在另一种情况下,每一层都有不同的职责,并且在每一层上运行的处理不同。
这两个概念都不是排他性的:您可以拥有非分布式的多层应用程序(如果没有冗余/复制形式),不是多层的分布式应用程序,也可以是分布式的多层应用程序(如果他们有某种形式的冗余)。
关于区别还有很多话要说,但区别(对我来说)本质上是存在的。
【讨论】:
ewernli 在这里有最正确的答案。原始问题中唯一缺少的部分涉及物理层和逻辑层。
从分布式和/或多层的角度来看,这些层是物理上独立的还是逻辑上独立的并不重要。意思是,没关系。您可以创建完全驻留在同一机器实例上的多层甚至分布式应用程序。
也就是说,更常见的做法是将各层分成专门为该类型负载构建的不同机器。例如,Web 服务器和数据库服务器。甚至是一个 Web 服务器、几台 Web 服务机器以及一个或多个数据库服务器。
所有这些功能,分布式、多层和/或通过逻辑和/或物理层进行负载平衡只是应用程序设计的功能。
此外,在当今的虚拟机世界中,完全有可能(甚至可能)在单个真实机器的范围内设置多层、分布式和负载平衡的应用程序。不过,我绝不会推荐这种做法,因为负载平衡和分布式服务的目的通常是提高可用性或吞吐量。
【讨论】:
多层意味着您的应用程序将基于具有不同任务(数据库、Web 应用程序...)的多台机器。分布式意味着您的应用程序将同时在多台机器上运行,例如您的网站可以托管在 3 个不同的服务器上。
对于多层应用程序,我们通常谈论物理层。但在每个应用程序中,您可以/应该有不同的逻辑层。
【讨论】: