当前位置:首页>维修大全>综合>

集群 负载均衡 分布式 有什么区别

集群 负载均衡 分布式 有什么区别

更新时间:2023-09-15 09:48:36

集群 负载均衡 分布式 有什么区别

集群,负载均衡和分布式,虽然是不同的概念,但是彼此之间又有联系。

01. 集群

集群是指有多台服务器,它们做着相同的事情,提供相同的服务区,在调用方看来只有一个服务器对外提供服务,这些服务器组合起来就叫做集群。

我们以代码为例:

最早的时候,我们的业务都写在一个项目中,比如我们做一个网上商城的项目,客户注册、商品浏览及下单、支付、物流全部都在同一个项目中。

但是随着用户的不断增多,一台服务器已经不能满足这么大访问量的时候,我们可以将这个项目部署在多台服务器上,这样就可以让跟多的用户访问我们的网站。

虽然这样看起来,我们网站的负载能力更强了,可以让更多的用户访问我们的网站,但是有另外一个问题,就是网站(服务)的入口会有多个,你不可能要求用户能记住你所有服务器的 IP,也不可能申请多个域名挂在不同的服务器上,这时候就需要用到负载均衡了。

02. 负载均衡

负载均衡可以把用户的请求分发到后端的服务器上,就像这样:

这样就变成了统一的入口,然后再做二次分发,将流量按照一定的规则发送到后端的每台服务器上,这个过程就是负载均衡。

负载均衡有硬件的实现方式,比如 F5,这是一台硬件设备,也有软件的实现方式,比如 Nginx、LVS 等等;

负载均衡策略也有很多,比如轮询法、随机法、随机轮询法、源地址哈希法、最小连接数法、最快响应速度法等等;

另外,在微服务架构中,还有一个概念是“客户端负载均衡”,也就是客户端保存着每台服务器的地址,由客户端自己决定去访问哪台服务器。客户端的负载均衡,通常是要和服务注册发现配合使用的。

03. 分布式

如果所有的代码都写在同一个代码包中,随着需求的增多、业务越来越复杂,这个代码包可能会变得越来越大,越来越难维护;以前三五个开发人员就能维护一个项目,现在是三五百个开发人员一起合作开发;功能模块都在一起,一个功能要升级,整个项目就要跟着一起升级;当我们要做另外一个项目的时候,有一些功能就要重复开发...由于以上种种问题,需要我们将项目进行服务化,分布式部署。

集群是多台服务器,每台服务器干相同的事情,那么分布式就是多台机器,每台服务器做不同的事情,它们彼此配合完成工作。

当然不是说使用了分布式之后,就不需要负载均衡了,通常两者是配合使用的。

我将持续分享Java开发、架构设计、程序员职业发展等方面的见解,希望能得到你的关注。

更多栏目