12《Nginx 入门教程》Nginx负载均衡(上)

12《Nginx 入门教程》Nginx负载均衡(上),第1张

1、集群是什么?
① 集群(cluster)技术是一种较新的技术,通过集群技术,可以在付出较低成本的情况下获得在性能、可靠性、灵活性方面的相对较高的收益,其任务调度则是集群系统中的核心技术。
② 集群是一组相互独立的、通过高速网络互联的计算机,它们构成了一个组,并以单一系统的模式加以管理。一个客户与集群相互作用时,集群像是一个独立的服务器
③ 集群组成后,可以利用多个计算机和组合进行海量请求处理( 负载均衡 ),从而获得很高的处理效率,也可以用多个计算机做备份(高可用),使得任何一个机器坏了整个系统还是能正常运行。集群在目前互联网公司是必备的技术,极大提高互联网业务的可用性和可缩放性。
2、负载均衡集群技术
① 负载均衡(Load Balance):负载均衡集群为企业需求提供了可解决容量问题的有效方案。负载均衡集群使负载可以在计算机集群中尽可能平均地分摊处理。
② 负载通常包括应用程序处理负载和网络流量负载。这样的系统非常适合向使用同一组应用程序的大量用户提供服务。每个节点都可以承担一定的处理负载,并且可以实现处理负载在节点之间的动态分配,以实现负载均衡。对于网络流量负载,当网络服务程序接受了高入网流量,以致无法迅速处理,这时,网络流量就会发送给在其它节点上运行的网络服务程序。也可根据服务器的承载能力,进行服务请求的分发,从而使用户的请求得到更快速的处理。
3、负载均衡集群技术的实现
负载均衡(Load Balance)
负载均衡技术类型:基于 4 层负载均衡技术和基于 7 层负载均衡技术
负载均衡实现方式:硬件负载均衡设备或者软件负载均衡
硬件负载均衡产品: F5 BIG-IP 、Citrix Netscaler  、深信服 、Array 、Radware
软件负载均衡产品: LVS (Linux Virtual Server)、 Haproxy、Nginx、Ats(apache traffic server)
4、实现效果如图

5、负载均衡分类
负载均衡根据所采用的设备对象( 软/硬件负载均衡 ),应用的OSI网络层次( 网络层次上的负载均衡 ),及应用的地理结构( 本地/全局负载均衡 )等来分类。本文着重介绍的是根据应用的 OSI 网络层次来分类的两个负载均衡类型。
我们先来看一张图,相信很多同学对这张图都不陌生,这是一张网络模型图,包含了 OSI 模型及 TCP/IP 模型,两个模型虽然有一点点区别,但主要的目的是一样的,模型图描述了通信是怎么进行的。它解决了实现有效通信所需要的所有过程,并将这些过程划分为逻辑上的层。层可以简单地理解成数据通信需要的步骤。

根据负载均衡所作用在 OSI 模型的位置不同,负载均衡可以大概分为以下几类:
二层负载均衡(mac)
根据OSI模型分的二层负载,一般是用虚拟mac地址方式,外部对虚拟MAC地址请求,负载均衡接收后分配后端实际的MAC地址响应。
三层负载均衡(ip)
一般采用虚拟IP地址方式,外部对虚拟的ip地址请求,负载均衡接收后分配后端实际的IP地址响应。
四层负载均衡(tcp)
在三层负载均衡的基础上,用ip+port接收请求,再转发到对应的机器。
七层负载均衡(>

对于大型网站而言,分布式及负载均衡技术都会用到,而一般小型站点基本上不会涉及这些技术,所以很多在中小型科创公司的同学对这两个概念可能还不太清楚。

什么是分布式系统?

分布式系统是相对于集中式系统而言的,中小型应用大多数都是集中式系统,即:整个项目所依懒的东西都在一个应用内,耦合度较高。而分布式系统就是将集中式应用按业务、功能、模块来进行拆分,部署在不同节点的服务器上以避免单一节点故障,提高系统的可用性。

通俗的说,分布式就是将同一个任务交给不同的服务器共同去完成,或者是不同任务交给不同服务器去完成。如果任务是相同的,这种分布式部署也可以称为“集群”。

什么是负载均衡?

负载均衡其实就是将用户的请求通过特定算法(如:轮询、随机、IPHash、URLHash等)分摊至不同服务器上去执行,负载均衡其实干的事就是任务调度和转发。

负载均衡技术的实现方案

负载均衡的实现方式有很多,最常见的有:

1、IP负载均衡

基于TCP/IP技术实现的负载均衡,这种可以借助硬件或软件来实现,硬件主要是F5,软件就很多了,比如:Nginx、HAProxy、LVS等。

2、DNS轮询

现在一些智能DNS解析平台可以轻松实现负载均衡,我们通过配置多条DNSA记录来分发请求至不同服务器上。但是DNS轮询有个致命缺点:缺乏及时的健康检查机制、暴露真实IP存在安全隐患。

3、CDN

其实CDN内容分发网络也是负载均衡的一种实现方式,CDN分布全国的节点服务器其实就是分布式部署的。

负载均衡包含服务器负载均衡和链路负载均衡,用硬件和软件都能实现,但硬件比较省心,这方面不错的厂商有F5、深信服,不过国内性价比高、服务比较完善的还是深信服,特别是他们的单边加速功能不错。

即全球服务器负载均衡。

硬件负载均衡解决方案是直接在服务器和外部网络间安装负载均衡设备,这种设备通常称之为负载均衡器,由于专门的设备完成专门的任务,独立于 *** 作系统,整体性能得到大量提高,加上多样化的负载均衡策略,智能化的流量管理,可达到最佳的负载均衡需求。

软/硬件负载均衡:

软件负载均衡解决方案是指在一台或多台服务器相应的 *** 作系统上安装一个或多个附加软件来实现负载均衡,如DNS Load Balance,CheckPoint Firewall-1 ConnectControl等,它的优点是基于特定环境,配置简单,使用灵活,成本低廉,可以满足一般的负载均衡需求。

软件解决方案缺点也较多,因为每台服务器上安装额外的软件运行会消耗系统不定量的资源,越是功能强大的模块,消耗得越多,所以当连接请求特别大的时候,软件本身会成为服务器工作成败的一个关键;软件可扩展性并不是很好,受到 *** 作系统的限制;由于 *** 作系统本身的Bug,往往会引起安全问题。

互联网接入系统内的负载均衡系统可以解决并发压力,提高应用处理性能(增加吞吐量,加强网络处理能力);提供故障转移,实现高可用;通过添加或减少服务器数量,提供网站伸缩性(扩展性);安全防护(负载均衡设备上做一些过滤,黑白名单等处理)。

实现负载均衡可以从硬件和软件两方面着手,在硬件上我们可以使用F5等负载均衡器,在软件上我们可以使用LVS、Nginx、HaProxy等负载均衡软件。使用硬件性能强悍,使用软件灵活智能。

用户请求数据包,到达负载均衡服务器后,负载均衡服务器在 *** 作系统内核进程获取网络数据包,根据负载均衡算法得到一台真实服务器地址,然后将请求目的地址修改为获得的真实IP地址,不需要经过用户进程处理。 真实服务器处理完成后,响应数据包回到负载均衡服务器,负载均衡服务器,再将数据包源地址修改为自身的IP地址,发送给用户浏览器。

负载均衡的原理

1、利用DNS,通过使用域名解析实现负载均衡

配置多个A 记录,这些A记录对应的服务器构成集群。大型网站总是部分使用DNS解析,作为第一级负载均衡。 显而易见,使用这种方式的负载均衡的控制权在域名商那里,不易拓展,并且用这种方式的负载不能很好的分流,有可能造成所有的请求都集中到一个节点上。不过,若作为第一层的负载均衡的确是个好办法。

2、利用>

当>


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10324563.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-07
下一篇 2023-05-07

发表评论

登录后才能评论

评论列表(0条)

保存