Multi-tier vs Distibuted?

China☆狼群 提交于 2019-12-06 12:19:53

Maybe these two sentences do convey intuitively the distinction between distributed and multi-tier:

  • Distributed: You replicate the processing amongst nodes
  • Multi-tier: You split the processing amongst tiers

In one case, the same processing is replicated over several nodes. In the other case, each tier has a distinct responsibility and the processing running on each tier differ.

Both notions are not exclusive: you can have non-distributed multi-tier apps (if there is no form of redundancy/replication), distributed apps which are not multi-tier, but also multi-tier apps which are distributed (if they have some form of redundancy).

There would be a lot more to say about the distinction, but the difference (to me) is essentially there.

NotMe

ewernli has the mostly correct answer here. The only missing piece from the original question concerns physical and logical layers.

From a distributed and/or multi-tier perspective whether the layers are physically separate or just logically so is immaterial. Meaning, it doesn't matter. You can create multi-tier and even distributed applications which resides entirely on the same machine instance.

That said, it is more common to separate the tiers into different machines built specifically for that type of load. For example, a web server and a database server. Or even a web server, several web services machines, and one or more database servers.

All of these features, distributed, multi-tier, and/or load balanced with logical and/or physical layers are just features of the application design.

Further, in today's world of virtual machines, it's entirely possible (and even likely) to set up a multi-tier, distributed, and load balanced application within the confines of a single real machine. Although, I'd never recommend that course of action because the point of load balancing and distributed services is usually to increase availability or throughput.

Multi-tier means that your application will be based on multiple machines with different tasks (Database, Web application, ...). Distributed means that your application will run in multiple machines a the same time, for example your website could be hosted on 3 different servers.

For multi-tier applications we speak generally about physical layer. But in every application you can/should have different logical layers.

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!