我们举例来回答吧!
比如说,你现在要洗脚,当然,你得放洗脚水。那么我们假定,现在只有一个洗脚盆,那么不管你需要的洗脚水有多少,最多只能装一洗脚盆的容量。
这个就是单服务器的运用场景,你的洗脚水就是流量。
然后你娶了个媳妇儿,这个时候,你当然可以说大家一起洗美滋滋,但是万一你媳妇儿要求各洗各的呢?于是,你们只能考虑谁先洗谁后洗。
流量翻倍,但还是单服务器应用,这个叫做队列。
然后你媳妇儿怒了:干嘛这么麻烦,为什么不能买俩盆儿?
于是你又买了个洗脚盆,现在你们有两个盆儿了。
这个就是多服务器。
然后你媳妇儿又发现问题了:虽然盆儿有俩,但是水龙头还是只有一个,接水还是得分先后,她生气了,让你跪榴莲。
你没办法,只好在水龙头底下装了个桶,桶底下有俩出口,水要先流到桶里,再从出口流到洗脚盆里。
现在互联网企业对外服务一般都是多台机器提供服务的,即,一个域名配置多个ip地址,一个ip对应了一个服务,这样有一台机器挂了,还有其他的机器提供服务,而且这样可以分摊请求,而这里就需要我们配置ng了,对于一个请求具体打到哪一个机器,对于不同的也许场景有不同的方式,比如,轮询,根据ip哈希,也可以根据不同的机器的承受压力的不同,改变随机的概率等等,这着能具体查到的最好动手去百度谷歌
并不是同一回事,目前常用实现负载均衡的服务器是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
一家餐厅,本来厨房只有一位师傅,由师傅负责洗菜、择菜、切菜、炒菜,后来顾客增多了;就请了个帮厨负责洗菜、择菜和切菜,之前的师傅只负责炒菜了;后来顾客更多了,就又请了一位师傅炒菜,这样就有一个帮厨负责洗菜、择菜还有切菜,有两位师傅负责炒菜。以上就是分布式和集群[灵光一闪]
不是一个意思,下面按照我的理解说一下什么是分布式,什么是集群,如果有理解错误的地方,请大家留言指正。
同一个业务系统,部署在多台服务器上,这个就叫做集群。
集群里面,每一台服务器实现的功能没有差别,代码都是一样的。
比如我有一个系统A,提供一个很简单的接口,根据员工编号查询员工姓名和他的考勤记录。
当有一个系统调用这个接口的时候,我部署一台服务器就够用了。
当有一百个系统调用这个接口的时候,我就部署十台服务器,前面挂一个负载均衡。
这就是集群部署,当一台服务器挂了以后,不影响功能使用。
我接触过的负载均衡软件有Nginx、LB、HAProxy,也有硬件诸如F5。
到此,以上就是小编对于服务器负载均衡有什么作用呢的问题就介绍到这了,希望这2点解答对大家有用。
网站标题:负载均衡和分布式是一个意思吗,有哪些区别?
链接URL:http://www.shufengxianlan.com/qtweb/news6/384356.html
网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联