多层对分布式?

时间:2010-08-22 16:07:38

标签: distributed layer multi-tier

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

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

3 个答案:

答案 0 :(得分:5)

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

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

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

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

关于区别会有更多的说法,但差异(对我而言)基本上就是存在。

答案 1 :(得分:1)

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

从分布式和/或多层角度来看,层是物理上是分开的还是仅仅是逻辑上的,因此是无关紧要的。意思是,没关系。您可以创建完全驻留在同一计算机实例上的多层甚至分布式应用程序。

也就是说,将层分成专门为这种类型的负载而构建的不同机器更为常见。例如,Web服务器和数据库服务器。甚至是Web服务器,多个Web服务机器和一个或多个数据库服务器。

所有这些功能,分布式,多层和/或负载均衡的逻辑和/或物理层只是应用程序设计的功能。

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

答案 2 :(得分:0)

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

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