slb对应的是自建LVS
都行 nginx的话 需要自己购买大额的宽带 非常昂贵 就看你的业务 如果只是偶尔高访问量 不是持续的话 就slb吧
肯定是阿里云slb,slb提供了标准的api接口可以通过api方便快速得完善相关服务配置,很多觉得自己用nginx可以做负载均衡,但实际结果呢?不仅增加了运维成本,在稳定性和安全性上根本没有保证,可以说出力不讨好。当然很多企业是基于自身成本考虑,阿里云slb相对自建nginx来说,成本确实高出很多,而且限制也很多,比如在某一端口下限制代理数量等等。总之公司有钱不差钱百分百上slb,稳定安全,减少运维成本。基于成本考虑自建nginx,需要自己做好各种监控运维策论,付出更多的运维成本,稳定性相对来说没有slb稳定
slb费钱,没有固定的。nginx负载均衡费用可以固定下来。
很多觉得自己用nginx可以做负载均衡,有没必要购买阿里云负载均衡SLB呢?购买阿里云负载均衡SLB和自己用nginx做负载均衡有何区别与优势呢? 其实自己用nginx做负载均衡就是吃力不讨好,运维成本高,而且很不稳定,相对于直接购买阿里云负载均衡SLB稳定搞、容灾高、多种协议支持、并且运维成本低。
其实nginx现实中大部分都是用来做反向代理了。负载均衡的话有条件还是slb吧,网络层的快一些
阿里云 SLB 是一个很好的调度员,把访问流量均衡的分配给后端的多台 ECS 实例服务器 ,达到加速访问,提高业务稳定性的作用。你可以在负载均衡中添加多台 ECS 云服务器,并且提前设置好运行规则。当阿里云 SLB 启动后,就根据预先设定的规则分发流量。如果遇到某台云服务器故障,就会自动隔离掉故障服务器,保障了整个业务的稳定运行。
是网站中最常用的加速功能。通过分布式服务器布局,把网站业务内容缓存到各地的云服务器中,供访客就近访问。所以使用了 CDN 的网站业务,打开速度特别快。
阿里云CDN官方页面: 点我直达
关于阿里云 CDN 的问题及解答请移步 阿里云 CDN 配置过程及疑问解答 ,老魏强烈建议网站业务都要使用 CDN 加速功能。价格也不贵,普通网站一年几十块钱就搞定了。
局限性在于普通CDN加速只给静态内容加速,比如图片、文档等。
是有安全防护能力的CDN服务。用官方解释来说,SCDN 能够提前预判外界攻击行为,并将恶意请求切换到高防IP,无需人为操作。目的是通过数据清洗把恶意流量去除。而真实用户的请求则正常打开页面,这样就兼顾了智能加速和安全工作。
官方网址: 点我直达
因为传统的CDN加速服务,只具备最基本的抗攻击功能,不过无法抵挡大规模的DDoS、CC攻击。单独使用高防IP保护源站的方式又无法兼顾加速。而在游戏、金融、政企安防、电商、医疗领域等易受攻击又必须兼顾加速的业务场景,需要同时有高防能力和稳定高效的安全CDN加速服务。阿里云SCDN 就是基于阿里云CDN 的优质加速能力,深度集成阿里云盾的专业攻防策略,可一站式提供安全和加速的整体解决方案。
全站加速(DCDN)
)是在CDN加速的基础上技术升级的云产品。智能区分访问的动态内容还是静态内容。如果是静态内容就直接用阿里云CDN加速,动态内容通过路由决策优化、协议优化等快速回源拉取内容数据。
和普通CDN加速只给静态内容加速,比如图片、文档相比,阿里云全站加速(DCDN)可以智能的对动态、静态内容都进行加速。请看表格的功能对比。
在软件系统的架构设计中,对集群的负载均衡设计是作为高性能系统优化环节中必不可少的方案。负载均衡本质上是用于将用户流量进行均衡减压的,因此在互联网的大流量项目中,其重要性不言而喻。
早期的互联网应用,由于用户流量比较小,业务逻辑也比较简单,往往一个单服务器就能满足负载需求。随着现在互联网的流量越来越大,稍微好一点的系统,访问量就非常大了,并且系统功能也越来越复杂,那么单台服务器就算将性能优化得再好,也不能支撑这么大用户量的访问压力了,这个时候就需要使用多台机器,设计高性能的集群来应对。
那么,多台服务器是如何去均衡流量、如何组成高性能的集群的呢?
此时就需要请出 「负载均衡器」 入场了。
负载均衡(Load Balancer)是指把用户访问的流量,通过「负载均衡器」,根据某种转发的策略,均匀的分发到后端多台服务器上,后端的服务器可以独立的响应和处理请求,从而实现分散负载的效果。负载均衡技术提高了系统的服务能力,增强了应用的可用性。
目前市面上最常见的负载均衡技术方案主要有三种:
基于DNS负载均衡
基于硬件负载均衡
基于软件负载均衡
三种方案各有优劣,DNS负载均衡可以实现在地域上的流量均衡,硬件负载均衡主要用于大型服务器集群中的负载需求,而软件负载均衡大多是基于机器层面的流量均衡。在实际场景中,这三种是可以组合在一起使用。下面来详细讲讲:
基于DNS负载均衡
基于DNS来做负载均衡其实是一种最简单的实现方案,通过在DNS服务器上做一个简单配置即可。
其原理就是当用户访问域名的时候,会先向DNS服务器去解析域名对应的IP地址,这个时候我们可以让DNS服务器根据不同地理位置的用户返回不同的IP。比如南方的用户就返回我们在广州业务服务器的IP,北方的用户来访问的话,我就返回北京业务服务器所在的IP。
在这个模式下,用户就相当于实现了按照「就近原则」将请求分流了,既减轻了单个集群的负载压力,也提升了用户的访问速度。
使用DNS做负载均衡的方案,天然的优势就是配置简单,实现成本非常低,无需额外的开发和维护工作。
但是也有一个明显的缺点是:当配置修改后,生效不及时。这个是由于DNS的特性导致的,DNS一般会有多级缓存,所以当我们修改了DNS配置之后,由于缓存的原因,会导致IP变更不及时,从而影响负载均衡的效果。
另外,使用DNS做负载均衡的话,大多是基于地域或者干脆直接做IP轮询,没有更高级的路由策略,所以这也是DNS方案的局限所在。
基于硬件负载均衡
硬件的负载均衡那就比较牛逼了,比如大名鼎鼎的 F5 Network Big-IP,也就是我们常说的 F5,它是一个网络设备,你可以简单的理解成类似于网络交换机的东西,完全通过硬件来抗压力,性能是非常的好,每秒能处理的请求数达到百万级,即 几百万/秒 的负载,当然价格也就非常非常贵了,十几万到上百万人民币都有。
因为这类设备一般用在大型互联网公司的流量入口最前端,以及政府、国企等不缺钱企业会去使用。一般的中小公司是不舍得用的。
采用 F5 这类硬件做负载均衡的话,主要就是省心省事,买一台就搞定,性能强大,一般的业务不在话下。而且在负载均衡的算法方面还支持很多灵活的策略,同时还具有一些防火墙等安全功能。但是缺点也很明显,一个字:贵。
基于软件负载均衡
软件负载均衡是指使用软件的方式来分发和均衡流量。软件负载均衡,分为7层协议 和 4层协议。
网络协议有七层,基于第四层传输层来做流量分发的方案称为4层负载均衡,例如 LVS,而基于第七层应用层来做流量分发的称为7层负载均衡,例如 Nginx。这两种在性能和灵活性上是有些区别的。
基于4层的负载均衡性能要高一些,一般能达到 几十万/秒 的处理量,而基于7层的负载均衡处理量一般只在 几万/秒 。
基于软件的负载均衡的特点也很明显,便宜。在正常的服务器上部署即可,无需额外采购,就是投入一点技术去优化优化即可,因此这种方式是互联网公司中用得最多的一种方式。
上面讲完了常见的负载均衡技术方案,那么接下来咱们看一下,在实际方案应用中,一般可以使用哪些均衡算法?
轮询策略
负载度策略
响应策略
哈希策略
下面来分别介绍一下这几种均衡算法/策略的特点:
NO.1—— Random 随机
这是最简单的一种,使用随机数来决定转发到哪台机器上。
优点:简单使用,不需要额外的配置和算法。
缺点:随机数的特点是在数据量大到一定量时才能保证均衡,所以如果请求量有限的话,可能会达不到均衡负载的要求。
NO.2—— Round Robin 轮询
这个也很简单,请求到达后,依次转发,不偏不向。每个服务器的请求数量很平均。
缺点:当集群中服务器硬件配置不同、性能差别大时,无法区别对待。引出下面的算法。
NO.3—— Weighted Round Robin 加权轮询
这种算法的出现就是为了解决简单轮询策略中的不足。在实际项目中,经常会遇到这样的情况。
比如有5台机器,两台新买入的性能等各方面都特别好,剩下三台老古董。这时候我们设置一个权重,让新机器接收更多的请求。物尽其用、能者多劳嘛!
这种情况下,“均衡“就比较相对了,也没必要做到百分百的平均。
NO.4—— Least Connections 最少连接
这是最符合负载均衡算法的一个。需要记录每个应用服务器正在处理的连接数,然后将新来的请求转发到最少的那台上。
NO.5—— Source Hashing 源地址散列
根据请求的来源ip进行hash计算,然后对应到一个服务器上。之后所有来自这个ip的请求都由同一台服务器处理。
https://www.cnblogs.com/saixing/p/6730201.html
https://blog.51cto.com/13732225/2175804
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)