服务器集群与分布式系统

服务器集群与分布式

本文仅做为自己开发过程中的学习笔记

1.什么是服务器集群,什么是分布式,二者有何区别?

参考文献(侵删):分布式与集群的区别

1)服务器集群:

我们最原始的项目是单机结构,即整个项目部署在同一台主机上,完成所有的功能。但随着服务升级,单一主机的硬件要求难以满足服务所需,因此需要集群服务。即多台服务器共同部署同一套系统,每台服务器叫做集群的一个节点,这样服务的运算就由多台服务器共同负担,运算能力随着节点的增加而成倍增长(道行较浅,实际应该会有区别)。
客户端的请求由哪个节点来处理呢,这时我们需要一台服务器作为“调度者”,即负载均衡服务器(以后会讲到),有他根据各服务器负载情况分配工作。
优点
1.方便扩展,单机结构需要更换主机,集群服务只需按要求增加服务器即可。
2.由单机结构转换成集群服务不需要改变源码,只需增加服务器。

实际业务发展到一定时期会遇到瓶颈——即无论如何增加服务器都不能提升性能,因此产生概念——分布式。

2)分布式:

即微服务结构,将同一业务拆分成多个独立的子系统,分布在不同服务器上协同工作,每个子系统(即服务)都可以在web容器上独立运行,他们之间以RPC方式通信(以后会讲到)。
例如:某宝,用户服务、产品服务、订单服务、后台管理服务、数据分析服务等等。每个服务都可以独立运行,如果某服务之间有依赖关系,可通过RPC方式调用,协同工作。

优点
1.系统耦合度低,可以独立开发、独立部署、独立测试,系统之间边界明显,改bug更方便,提升开发效率。
2.由于系统耦合度低,因此方便扩展,需要增加服务只需要新增服务器,某个服务需要增加节点时,其他服务可以维持原来的节点。
3.系统的复用性更高,同一个服务可以用于很多项目,比如某迅的用户登录服务,可以在不同游戏之间使用。

由单机结构和集群结构转换为微服务结构,需要大幅度改动源码。因此在项目之初就需要考虑是否要用到微服务结构。

3)区别和联系:

套用某乎上举的一个例子:把服务比作不停做一到菜,单机结构就是一个厨师完成所有的工作;集群结构就是多个厨师一起做,每个人都独立完成同一道菜,人越多做的越快;分布式(微服务结构)就是由专门的人(一个或多个)去洗菜切菜,将做一道菜分成多个步骤,多个部门协调,增加做菜的速度,这样就要求所会的技能不同(改变源码)。从而突破瓶颈(要做五份菜,已经有六个厨师了,再多也不会提升速度了,所以从工艺流程上做改变)。

大神公众号:大闲人柴毛毛

你可能感兴趣的:(学习笔记,概念科普类)