分布式是大型架构的核心,下面我重点详解分布式和集群区别@mikechen
核心设计不同
集群(Cluster),它的主要目的是为了实现高可用性(High Availability)、和负载均衡(Load Balancing)。

它解决的是量的问题,即当一个单体系统处理不过来大量请求,或者容易宕机时,我们就用集群。
而分布式(Distributed),它的核心目的是为了拆分业务,解耦系统,解决的是复杂度的问题。
当一个业务系统过于庞大、功能过于复杂,代码难以维护、迭代困难时。
就需要将它拆解成多个独立的子系统(如:用户服务、订单服务)。
这些子系统协同工作,共同完成一个大的业务流程。
网络部署不同
集群:节点往往位于同一局域网或同一数据中心,网络延迟较低。
节点之间的协调更紧密,常采用共享存储或专用快速互联来实现节点间的高效协同。
分布式:节点之间通常较为自治,可能位于不同数据中心或网络域。

通信以远程调用、消息队列或事件驱动为主,网络延迟与分区容忍是设计要点。
分布式系统需处理一致性、延迟和部分失败等复杂性。
处理方式不同
分布式系统的多个节点“分头做事”,即拆分复杂任务为多个子任务。
由不同节点独立完成后协调合成结果,强调异构协作。

集群系统的多个节点“一堆人干同一件事”,多个节点同时处理相同类型的请求,提高处理能力和系统可用性。
架构实现不同
集群:代表水平扩展(Scale-Out)。
当系统性能不足时,你只需要增加相同的机器,并接入负载均衡器即可。
这是最简单、最快提升容量的方法。
分布式:代表垂直分解(Decomposition),这是从业务逻辑上进行的拆分。

一个单体应用被分解为多个独立的、自治的服务,这是架构演进到一定阶段后,为了管理复杂性而做出的根本性改变。
陈睿mikechen
10年+大厂架构经验,资深技术专家,就职于阿里巴巴、淘宝、百度等一线互联网大厂。
关注作者「mikechen」公众号,获取更多技术干货!
后台回复【架构】,即可获取《阿里架构师进阶专题全部合集》,后台回复【面试】即可获取《史上最全阿里Java面试题总结》