3

多层和/或分布式应用程序,它们是否具有相同的含义?

当我们谈论这些应用程序中的层时,是物理层(数据库、浏览器、Web 服务器……)还是逻辑层(数据访问层、业务层……)?

4

3 回答 3

7

也许这两句话确实直观地传达了分布式多层之间的区别:

  • 分布式:您在节点之间复制处理
  • 多层:您在层之间拆分处理

在一种情况下,在多个节点上复制相同的处理。在另一种情况下,每一层都有不同的职责,并且在每一层上运行的处理不同。

这两个概念都不是排他性的:您可以拥有非分布式的多层应用程序(如果没有冗余/复制形式),不是多层的分布式应用程序,也可以是分布式的多层应用程序(如果它们有某种形式的冗余)。

关于区别还有很多话要说,但是(对我而言)区别本质上就在那里。

于 2010-08-23T17:51:39.900 回答
1

ewernli在这里有最正确的答案。原始问题中唯一缺少的部分涉及物理层和逻辑层。

从分布式和/或多层的角度来看,这些层是物理上独立的还是逻辑上独立的并不重要。意思是,没关系。您可以创建完全驻留在同一机器实例上的多层甚至分布式应用程序。

也就是说,更常见的做法是将这些层分成专门为该类型负载构建的不同机器。例如,Web 服务器和数据库服务器。甚至是一个 Web 服务器、几台 Web 服务机器以及一个或多个数据库服务器。

所有这些特性,分布式的、多层的和/或与逻辑和/或物理层进行负载平衡的只是应用程序设计的特性。

此外,在当今的虚拟机世界中,完全有可能(甚至可能)在单个真实机器的范围内设置多层、分布式和负载平衡的应用程序。虽然,我从不推荐这种做法,因为负载平衡和分布式服务的目的通常是提高可用性或吞吐量。

于 2010-08-23T18:07:30.327 回答
0

多层意味着您的应用程序将基于具有不同任务(数据库、Web 应用程序...)的多台机器。分布式意味着您的应用程序将同时在多台机器上运行,例如您的网站可以托管在 3 个不同的服务器上。

对于多层应用程序,我们通常谈论物理层。但是在每个应用程序中,您可以/应该有不同的逻辑层。

于 2010-08-22T16:12:32.287 回答