{eval=Array;=+count(Array);}

问答专栏Q & A COLUMN

负载均衡和分布式是一个意思吗,有哪些区别?

happenhappen 回答10 收藏1
收藏问题

10条回答

liaoyg8023

liaoyg8023

回答于2022-06-22 15:42

不是一个意思,下面按照我的理解说一下什么是分布式,什么是集群,如果有理解错误的地方,请大家留言指正。


集群

同一个业务系统,部署在多台服务器上,这个就叫做集群。

集群里面,每一台服务器实现的功能没有差别,代码都是一样的。


比如我有一个系统A,提供一个很简单的接口,根据员工编号查询员工姓名和他的考勤记录。

当有一个系统调用这个接口的时候,我部署一台服务器就够用了。

当有一百个系统调用这个接口的时候,我就部署十台服务器,前面挂一个负载均衡。

这就是集群部署,当一台服务器挂了以后,不影响功能使用。

我接触过的负载均衡软件有Nginx、LB、HAProxy,也有硬件诸如F5。



分布式

一个业务被拆成多个子业务,部署在多台服务器上,这个就叫做分布式。

分布式里面,每一台服务器实现的功能是有差别的,代码也是不一样的,分布式每台服务器功能加起来,才是完整的业务。


还是这个业务场景,我有一个系统A,提供一个很简单的接口,根据员工编号查询员工姓名和他的考勤记录。

我拆开两个系统:人员管理系统B和考勤系统C,分别部署在两台服务器上。


这个就是分布式。


好处是什么呢?如果有系统D也需要使用人员信息,传统的方式系统A和D都要有人员信息管理功能,意味着两个系统各自维护人员信息,那新入职一个员工,可能要在系统A和D里面都维护;如果是有EFGHI系统都需要人员信息呢?

而分布式解决了这个问题,人员信息多带带拎出来是一个系统,维护人员信息,同时对外提供查询服务。


分布式+集群

很多时候要结合起来一起用。


还是这个业务场景,我有一个系统A,提供一个很简单的接口,根据员工编号查询员工姓名和他的考勤记录。

我拆开两个系统:人员管理系统B和考勤系统C。

那么系统B部署在十台服务器上,系统C部署在十台服务器上;前面分别挂负载均衡;这样保证了每个子业务功能的高可用。


希望我的回答,能够帮助到你!

我会持续分享Java程序开发、架构设计、职业发展等方面的知识和见解,希望能得到你的关注今日我们【会点代码的大叔】,转载请注明出处。

评论0 赞同0
  •  加载中...
yibinnn

yibinnn

回答于2022-06-22 15:42

根据我所知道的回答一下这个问题。

负载均衡和分布式还真的不是一个意思。下面就分别说一说。

分布式计算

分布式计算是相对于集中式计算而言的,将应用分解成许多小的问题,分配给多台计算机进行处理,各个计算机之间通过高速网络交换数据,实现进程间的通信。可以大大提高计算效率。

一个分布式系统需要若干个网络互连的计算机,这些计算机相互协作完成一个共同的目标。

具体的过程就是:将需要大量计算的项目数据分割成小块,多台计算机分别计算,再将运算的结果统一后得到数据结论。

如下图所示:

负载均衡

负载均衡主要建立在现有的网络结构基础之上,通过一种廉价的方法增加网络设备或者服务器的带宽,是为了提高数据的吞吐量,提高冗余度、存在设备或者系统的备份能力,增强网络的灵活性和可用性。

主要的负载均衡技术有二层负载均衡、三层负载均衡、高层负载均衡。

二层负载均衡

二层负载均衡是指网络设备通过链路聚合的方式实现负载均衡,如下图所示,多条物理的链路聚合成一条逻辑链路,根据特定的算法和协议(LCAP协议)在两条物理链路中实现负载均衡,同时具有备份链路的功能,一条中断,并不影响网络数据的传输。

三层负载均衡

三层负载均衡最常用的技术就是VRRP(网关冗余协议)通过将不同的网关放在不同的三层设备中,实现负载均衡。还有通过RIP协议、OSPF协议实现等价路由协议的负载均衡。

如下图所示就是一个OPSF协议实现的等价路由协议负载均衡,R1到R2存在6条物理线路,可以模拟成一条逻辑线路,根据特定的算法实现数据包的负载均衡,断了某一条线路不影响数据的传输。

高层负载均衡

高层负载均衡是指三层以上的负载均衡技术,比如通过软件技术实现的负载均衡、http服务的负载均衡、DNS实现的负载均衡等。

其中DNS负载均衡是通过DNS服务器实现的,将用户的请求均匀的分不到web服务器上,可以根据地域区分请求。

nginx负载均衡是通过反向代理服务器实现的负载均衡,将请求均匀的分担到应用服务器上,有5种均衡策略可以选择。

负载均衡和和分布式的区别

数据处理方面

  • 负载均衡提高数据的吞吐量

  • 分布提高数据的并发处理能力

实现机制方面

  • 负载均衡是一种网络设备或者服务器的冗余机制,存在备份链路

  • 分布式为了完成同一个计算服务,将任务分担到各个单元执行,各个单元的进程通过网络互传数据。


对于负载均衡和分布式,大家有什么看法呢,可以在评论区留言讨论。

若需更多帮助,请私信关注。系诶些

评论0 赞同0
  •  加载中...
Barrior

Barrior

回答于2022-06-22 15:42

在搭建网站时,如果单节点的 web服务性能和可靠性都无法达到要求;或者是在使用外网服务时,经常 担心被人攻破,一不小心就会有打开外网端口的情况,通常这个时候加入负载均衡就能有效解决服务问 题。

负载均衡是一种基础的网络服务,其原理是通过运行在前面的负载均衡服务,按照指定的负载均衡算 法,将流量分配到后端服务集群上,从而为系统提供并行扩展的能力。

负载均衡的应用场景包括流量包、转发规则以及后端服务,由于该服务有内外网个例、健康检查等功 能,能够有效提供系统的安全性和可用性。

客户端负载均衡与服务端负载均衡

服务端负载均衡

先发送请求到负载均衡服务器或者软件,然后通过负载均衡算法,在多个服务器之间选择一个进行访 问;即在服务器端再进行负载均衡算法分配

客户端负载均衡

客户端会有一个服务器地址列表,在发送请求前通过负载均衡算法选择一个服务器,然后进行访问,这 是客户端负载均衡;即在客户端就进行负载均衡算法分配

基于Ribbon实现负载均衡

负载均衡策略

Ribbon内置了多种负载均衡策略,内部负责复杂均衡的顶级接口为 com.netflix.loadbalancer.IRule ,实现方式如下

  1. com.netflix.loadbalancer.RoundRobinRule :以轮询的方式进行负载均衡。
  2. com.netflix.loadbalancer.RandomRule :随机策略
  3. com.netflix.loadbalancer.RetryRule :重试策略。
  4. com.netflix.loadbalancer.WeightedResponseTimeRule :权重策略。会计算每个服务的权 重,越高的被调用的可能性越大。
  5. com.netflix.loadbalancer.BestAvailableRule :最佳策略。遍历所有的服务实例,过滤掉 故障实例,并返回请求数最小的实例返回。
  6. com.netflix.loadbalancer.AvailabilityFilteringRule :可用过滤策略。过滤掉故障和请 求数超过阈值的服务实例,再从剩下的实力中轮询调用。

Ribbon中的关键组件

  1. ServerList:可以响应客户端的特定服务的服务器列表。
  2. ServerListFilter:可以动态获得的具有所需特征的候选服务器列表的过滤器。
  3. ServerListUpdater:用于执行动态服务器列表更新。
  4. Rule:负载均衡策略,用于确定从服务器列表返回哪个服务器。
  5. Ping:客户端用于快速检查服务器当时是否处于活动状态。
  6. LoadBalancer:负载均衡器,负责负载均衡调度的管理。

评论0 赞同0
  •  加载中...
gityuan

gityuan

回答于2022-06-22 15:42

负载均衡

举例说明:一个人扛1000斤大米,对于普通人绝对被压死,但10个人分摊一下,1个人扛100斤,那应该轻松一点;如果还扛不动,就要100个人分摊,那1个人扛10斤应该就没问题了。

这个应该就明白了吧,就是多找人分摊,压力分散开。

分布式

举例说明:有个男人比较疼老婆,既能烧饭,洗衣服,带孩子,还能赚钱。之前都是他一个人忙着,还能够应付的来;但有一天公司提拔了他,但占用了他很多的时间,那他时间就不够用了,怎么办?那只能请保姆(服务器)安排好保姆去烧饭,洗衣服,带孩子。但保姆又不愿意都做。那就多请几个呗。各个保姆的职责分配好,各自完成各自的任务。

这样就多出来一个沟通问题,之前就这个男人做,他什么都知道;现在多个保姆再做。这样就增加了系统复杂度。

说到底就是职责划分明确

评论0 赞同0
  •  加载中...
weij

weij

回答于2022-06-22 15:42

并不是同一回事,目前常用实现负载均衡的服务器是Nginx,接下来我就用Nginx来举例,说明分布式和负载均衡的差别。

负载均衡

你应该经常听人说Nginx具有负载均衡的能力,但是这是什么意思呢?举个例子,某公司开发了一个服务,后端服务布置在Tomcat上,这个Tomcat目前能够承受的qps最多只有5000,但是随着公司规模扩大,用户越来越多,这个服务器逐渐无法承担瞬时间大量的请求了,时不时的就宕机。总是重启服务也不行,因为停服期间,对用户使用体验是有很糟糕的影响的。

那怎么办呢,此时就该引入Nginx,利用Nginx的负载均衡能力。

我们部署两台Tomcat,然后对外暴露给用户的host和port指向这个Nginx,当用户发送请求的时候,Nginx会根据两个Tomcat的健康情况决定把这个请求分给哪个(经过测试,两台服务器健康度相同的时候,Nginx会均匀的将请求分给两台服务器)。这样,从用户的角度,这个服务的qps的上限就达到了10000。

这就是负载均衡,可以看见,Nginx是将请求分给两台相同的机器,即这两台机器的功能和作用是相同的,可以理解为这两台机器组成了一个集群。

分布式

分布式与集群的区别在于,分布式是对外提供一个整体的服务,但是内部其实是将不同的服务模块部署在不同的Tomcat上。从某种程度上说,与微服务有点像,但是又有差别。分布式也需要用到Nginx,用的是Nginx的反向代理功能。举例,一个点外卖产品提供下单与查询的能力(非常简化,细节勿究),这两个功能分布部署在两个Tomcat上,从域名上看分别是

http://xxx.yyy.cn/order/

...和

http://xxx.yyy.cn/search

/...,但是其实

http://xxx.yyy.cn/

其实绑定的是Nginx,请求发送到Nginx之后,Nginx根据配置再决定是将请求发给负责查询的Tomcat还是负责下单的Tomcat。从架构上看,两台不同功能的Tomcat,这叫分布式。

以上是我的浅见,欢迎各位在下方评论区交流。

我是苏苏思量,来自BAT的Java开发工程师,每天分享科技类见闻,欢迎关注我,与我共同进步。

评论0 赞同0
  •  加载中...
Kosmos

Kosmos

回答于2022-06-22 15:42

首先说什么是分布式

按照功能点把一个系统进行拆分,拆分成独立的功能,多带带为某一个节点添加服务器,需要系统之间配合才能完成的逻辑,各系统之间通信就需要Dubbo+Zookeeper了。

负载均衡

可以说是为了解决前台访问人员过多而导致服务器崩溃的一种方法。有用Nginx做负载也有用Apache做负载均衡的。一般有的用Nginx代理Tomcat服务器或者WebLogic服务器来缓解服务器压力。


评论0 赞同0
  •  加载中...
Astrian

Astrian

回答于2022-06-22 15:42

一家餐厅,本来厨房只有一位师傅,由师傅负责洗菜、择菜、切菜、炒菜,后来顾客增多了;就请了个帮厨负责洗菜、择菜和切菜,之前的师傅只负责炒菜了;后来顾客更多了,就又请了一位师傅炒菜,这样就有一个帮厨负责洗菜、择菜还有切菜,有两位师傅负责炒菜。以上就是分布式和集群[灵光一闪]

评论0 赞同0
  •  加载中...
zombieda

zombieda

回答于2022-06-22 15:42

不一样,当我们刚开始用云服务器搭建网站或者部署应用的时候,因为用户流量较小,业务逻辑比较简单,一个云服务器就可以满足负载需求。但随着互联网流量越来越大,单台服务器有时候并不足以支撑大量的访问,可能会出现服务器崩溃的现象。

负载均衡的作用是把用户访问均衡分在后端服务器节点上面,减轻单一服务器的压力,比如小鸟云负载均衡,支持支持四层(TCP/UDP)以及七层(HTTP/HTTPS)协议负载,基础型是支持数千个并发连接数,并提供双机热备冗余保障,适合于中小型网站或其他应用,提高网站的性能,包年可以享受相应折扣。

像小鸟云的负载均衡是搭配小鸟云服务器使用的,他家的云服务器性能还不错,新购可以用85z券2W3V48,包年一样有优惠。

评论0 赞同0
  •  加载中...
jiekechoo

jiekechoo

回答于2022-06-22 15:42

这是两种不同的互联网技术,下面给大家详细介绍一下。

分布式系统(分布式计算)

分布式系统也称为分布式计算,它是一组计算机,担当一个大型计算机的角色。互联网上有几个分布式计算项目,它们通过共享数百万台不同计算机的处理能力来帮助解决复杂问题。通俗的讲就是,使得执行大量任务并将其分散到大量个人计算机上成为可能,这种做法称为分布式计算。下面是一个游戏分布式系统


负载均衡

什么是负载平衡?

分布式负载平衡是一种联网技术,它允许在各种服务器上分配工作负载,以维护和维持网站的性能并避免过载。这是一种网络类型,即使由于高流量或任何其他原因而给网站带来巨大压力,也可以增强网站的生存能力。

负载平衡就是在许多不同的服务器之间分配入站网络和流量。网站上出现了数百个互联网世界中的用户请求或客户请求。一台服务器要保持并继续以许多用户需要的速度显示文本,视频,高清质量的图像和其他数据变得非常困难。

许多不同的负载平衡技术充当指导者,以将流量定向到服务器场中的特定服务器。结束语这件事有助于防止一台服务器承担过多的负载,并确保优化网络和应用程序的可用性以及网站上的响应能力。

负载均衡优点:

1、优化服务器利用率

2、负载平衡器通过建立显式文本通信来终止SSL通信,以提高性能

3、确保任何单个服务器不会负载不堪重负

4、负载平衡器可以使用API或图形界面轻松管理配置。

1、网络负载平衡

2、内部负载平衡内部负载平衡

3、HTTP负载平衡

负载均衡器的类型

1、软件负载平衡器

2、硬件负载平衡器

3、虚拟负载平衡器


最新版2020大数据全套视频课件、源码、软件安装包及海量电子书(500G)等你来拿哦,底部留言、评论或mail尚学堂大数据学院。

评论0 赞同0
  •  加载中...
only_do

only_do

回答于2022-06-22 15:42

分布式是一种架构,负载均衡是一种技术手段。负载均衡就是分布式的一种应用情况。

评论0 赞同0
  •  加载中...

相关问题

最新活动

您已邀请0人回答 查看邀请

我的邀请列表

  • 擅长该话题
  • 回答过该话题
  • 我关注的人
向帮助了您的网友说句感谢的话吧!
付费偷看金额在0.1-10元之间
<