负载均衡
近来面试有被问到负载均衡,整理一下我所理解的。
一、
负载均衡(Load Balance):负载均衡的意思是分摊到多个处理机制,已达到各处理机制使用率最大化。这个使用率包括了:资源利用率、吞吐量、响应时间等。
这么说可能有点抽象,举个例子吧,假如你要去动物园参观,要去买票,今天人特别的多,队伍排的特别的长,所以一般情况下,人们都会去较短的队伍排队,从而使得各个售票口的排队人数是相同的,这样的话 工作效率就比较高。总不会一个队伍排的老长,其他队伍没人排吧。
这种工作机制其实就是负载均衡,他有效的将任务进行合理分配,使得各个处理单元处理响应的任务。
二、
目前我了解到的可以实现负载均衡技术大概有三种
(1).基于DNS实现负载均衡
DNS(域名系统协议)又叫域名解析器,我们所用的网络依赖于DNS来工作,因为我们输入的域名需要DNS去解析他的IP地址,从而达到该域名所对应的IP,如果该IP部署了项目,我们也是根据这种方式去访问该服务器。
在此基础上,出现了CDN,CDN(Content Delivery Network) 内容分发网络,它主要的功能是根据DNS返回的ip选择最佳节点的ip,这里的最佳节点ip指的通常是最近的ip,但是如果最近ip那台服务器负荷比较严重,那就是次级,以此类推.
所以CDN有效的均配了多台服务器的资源,从而实现负载均衡。
例子:我们在各个地方使用百度都不会觉得卡,这是因为他根据DNS和CDN实现了负载均衡,我们每次访问的都是最优的节点。
下面是百度的域名所对应的IP
(2).反向代理负载均衡
举个通俗的例子就是,你去买房 你告诉中介你要买啥房子 有几个钱,中介去找一个适合你的房子,这就叫反向代理,你可以不认路 你可以什么都不做,交给中介就行了。
反向代理的概念是这样的,用户发送请求给代理服务器,代理服务器来控制选择连接的服务器,服务器返回的数据也由代理服务器来返回给用户。
反向代理服务器比较有名的就是Nginx(其实就接触到了这一个),Nginx是一个高性能的HTTP和反向代理服务器。
nginx的工作机制:
简单来说,客户端发送请求,反向代理服务器根据找到合适的目标服务器转交请求。(这里的目标服务器并不是一台,而是多台,这样才可以解决单台服务器使用率不足的问题)。
还没有评论,来说两句吧...