什么是负载均衡,为何要做负载均衡?
一、什么是负载均衡当单个节点的服务,无法支持当前的大量请求时,我们会部署多个节点,即所谓的集群,此时要使每个节点收到的请求均匀的算法,这个策略就是所谓的负载均衡了 。负载均衡常见的负载均衡算法,有权重随机、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程序开发、架构设计、职业发展等方面的知识和见解,希望能得到你的关注今日头条【会点代码的大叔】,转载请注明出处 。
在软件架构中,有哪些负载均衡?它们起到的作用是什么?
如果项目的用户量少、访问量不大、数据量也不多的时候,一台服务器足以支撑,那么直接项目部署一套,直接访问使用就可以了,但是当用户和数据量不断增多,访问量(并发量)不断增加,一台服务器不在能够支撑业务的时候,就需要使用多台机器,设计高性能的集群来应对 。那么当我部署了多台服务器(这里假如是两台),那么调用方是如何访问的呢?服务方如何均衡访问的流量呢?这时候就需要引出负载均衡了 。
推荐阅读
- 手机root之后能做什么,关于手机root
- root后可以干嘛,为什么很多人喜欢root手机
- 数字藏品是实物吗
- 华为解锁怎么root不了怎么回事,手机解锁后不能root是怎么回事
- 荷花中间的线有什么用
- 925v root,mate2温热型
- 5点到6点是什么时辰
- 青蛙的别名叫什么
- 古代杏林高手是指
- 蝎子吃什么东西