负载均衡常见的负载均衡算法包括随机权重、哈希和轮询。从另一个角度来看,负载均衡可以分为两种:服务器端负载均衡:调用者只访问负载均衡的IP,不管后面有多少服务器。我接触过Nginx、LB、HAProxy等负载均衡软件,以及F5等硬件。

什么是负载均衡,为何要做负载均衡?

什么是负载均衡,为何要做负载均衡

一、什么是负载均衡当单个节点的服务,无法支持当前的大量请求时,我们会部署多个节点,即所谓的集群,此时要使每个节点收到的请求均匀的算法,这个策略就是所谓的负载均衡了。负载均衡常见的负载均衡算法,有权重随机、Hash、轮询。1.权重随机这个是最简单,也是最常用的负载均衡算法,即每个请求过来,会随机到任何一个服务节点上,主流的rpc框架Dubbo,默认使用基于权重随机算法。

2.Hash可以将客服端即请求端的ip,通过hash计算,得到一个数值,再取服务节点数的模,分配到对应的服务节点上。3.轮询将请求按照顺序,依次分配到节点1、节点2、节点3等节点上,如此循环往复。二、为什么要做负载均衡想想如果没有负载均衡算法,我们的请求有可能都打到同一节点上,有可能将这个节点给打死,而其他节点的机器闲置着没有提供服务,浪费资源。

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

什么是负载均衡,为何要做负载均衡

不是一个意思,下面按照我的理解说一下什么是分布式,什么是集群,如果有理解错误的地方,请大家留言指正。集群同一个业务系统,部署在多台服务器上,这个就叫做集群。集群里面,每一台服务器实现的功能没有差别,代码都是一样的。比如我有一个系统A,提供一个很简单的接口,根据员工编号查询员工姓名和他的考勤记录。当有一个系统调用这个接口的时候,我部署一台服务器就够用了。

当有一百个系统调用这个接口的时候,我就部署十台服务器,前面挂一个负载均衡。这就是集群部署,当一台服务器挂了以后,不影响功能使用。我接触过的负载均衡软件有Nginx、LB、HAProxy,也有硬件诸如F5。分布式一个业务被拆成多个子业务,部署在多台服务器上,这个就叫做分布式。分布式里面,每一台服务器实现的功能是有差别的,代码也是不一样的,分布式每台服务器功能加起来,才是完整的业务。

还是这个业务场景,我有一个系统A,提供一个很简单的接口,根据员工编号查询员工姓名和他的考勤记录。我拆开两个系统:人员管理系统B和考勤系统C,分别部署在两台服务器上。这个就是分布式。好处是什么呢?如果有系统D也需要使用人员信息,传统的方式系统A和D都要有人员信息管理功能,意味着两个系统各自维护人员信息,那新入职一个员工,可能要在系统A和D里面都维护;如果是有EFGHI系统都需要人员信息呢?而分布式解决了这个问题,人员信息单独拎出来是一个系统,维护人员信息,同时对外提供查询服务。

分布式 集群很多时候要结合起来一起用。还是这个业务场景,我有一个系统A,提供一个很简单的接口,根据员工编号查询员工姓名和他的考勤记录。我拆开两个系统:人员管理系统B和考勤系统C。那么系统B部署在十台服务器上,系统C部署在十台服务器上;前面分别挂负载均衡;这样保证了每个子业务功能的高可用。希望我的回答,能够帮助到你!我会持续分享Java程序开发、架构设计、职业发展等方面的知识和见解,希望能得到你的关注今日头条【会点代码的大叔】,转载请注明出处。

在软件架构中,有哪些负载均衡?它们起到的作用是什么?

什么是负载均衡,为何要做负载均衡

如果项目的用户量少、访问量不大、数据量也不多的时候,一台服务器足以支撑,那么直接项目部署一套,直接访问使用就可以了,但是当用户和数据量不断增多,访问量(并发量)不断增加,一台服务器不在能够支撑业务的时候,就需要使用多台机器,设计高性能的集群来应对。那么当我部署了多台服务器(这里假如是两台),那么调用方是如何访问的呢?服务方如何均衡访问的流量呢?这时候就需要引出负载均衡了。

负载均衡就是通过一定的策略,把用户的访问量均匀地转发给后端的服务器;负载均衡可以提高系统的服务能力和高可用性。负载均衡分类常见的负载均衡技术有三种:DNS负载均衡:大概的原理是,当用户访问域名的时候,需要先通过DNS解析域名,找到对应的IP地址,在这个过程中,可以让DNS服务器,根据用户的地理位置,返回不同的IP,这样就可以实现负载均衡,同时也可以提升用户的访问速度。

软件负载均衡:用软件来实现流量的分发,有基于传输层实现的负载均衡,比如LVS,也有基于应用层来实现的,比如Nginx;软件负载均衡实现起来很简单,只需要在服务器上部署并进行配置就可以实现;硬件负载均衡:用硬件来实现负载均衡,比如F5(F5 Network Big-IP),这是一台网络设备,性能很高,同时价格非常的贵。

从另外一个角度对负载均衡进行分类,可以分成两种:服务端负载均衡:调用方只访问负载均衡的IP,不需要管后面有多少台服务器。客户端负载均衡:服务端部署多台服务器,客户端知道每台服务器的地址,并通过一定的路由规则,均衡地访问,比如Spring Cloud Ribbon,当然客户端的负载均衡,通常是需要服务注册发现的配合。

Round Robin是一种常见的负载均衡调度算法,它以循环的方式将请求分配给有效的服务器;加权轮循:轮循的升级版,给后端服务器分配不同的权限,根据权重循环分配;例如,如果服务器A和服务器B的权重分别为100和50,那么请求将以2:1的比例分布;最少连接数:分配的请求根据每个服务器当前打开的连接数进行分配;源IP HASH:哈希调用者的IP,根据计算结果分配服务器。这样做的好处是,相同主机的请求将总是由相同的服务器来应答(但不一定是平衡的)。


文章TAG:负载  均衡  nginx  设备  
下一篇