负载均衡,你能想到多少种负载均衡的方法!你在工作中用到了多少种负载均衡?

文章目录

  • 负载均衡,为了解决问题而来
    • DNS负载均衡
    • NGINX负载均衡
    • 集群负载均衡
    • 负载均衡策略
    • 总结


在正式聊负载均衡以前,先聊聊学习方法。不要死记硬背知识,因为,死记硬背的总有忘记的一天。想要长久的记忆,就要用体验式的方式去学习。比如,很多人学会了骑自行车,哪怕过了N年不骑,拿过来自行车还是骑的很好。学习骑自行车的这个过程,就是体验式学习,会深深的印刻在你的骨子里而不是脑子里。
那么,学习程序开发最好的方式,就是带着思想写代码,然后,用白话讲给孩子听,孩子们懂了,你就成功了。

今天来聊聊负载均衡,可能你在工作中已经使用或者遇到了。但是,你重来没有认真想过。


负载均衡,为了解决问题而来


离开业务场景谈架构,就是sb架构,为什么这么说呢?因为,不切实际,不解决实际问题,就是扯淡。

从大规模的分布式系统来讲,负载均衡均衡可以分为软件负载和硬件负载。我们今天主要聊软件负载均衡。


DNS负载均衡


有人不了解dns吗?我想有的,那么我就啰嗦几句。DNS(Domain Name System)是因特网的一项服务,它作为域名和IP地址相互映射的一个分布式数据库,能够使人更方便的访问互联网。

像百度这种大的网站,它的网址对应的IP地址是有多个的,你可以使用PING baidu.com来查看,南方人和北方人ping出来的IP是不一样的,为什么呢?

为了加快用户的访问,和提高用户体验度,大的网站都会架设多个服务中心,让用户就近访问。


NGINX负载均衡


用户访问我们的网站,浏览器把网址转换为IP地址和端口,来进行访问我们的服务。

开发的同学都知道,后端服务是只暴露给前端的,前端服务是暴露给Nginx的,最终,用户的请求到达服务器以后,先通过Nginx做负载均衡,指定转发请求到前端服务器,前端服务器再调用后端接口,后端接口再请求数据库,然后返回数据。

Nginx做反向代理,如果,只方向代理一台后端服务,是不需要做负载均衡的。如果,需要代理2到N台服务器,就需要做负载均衡了。

Nginx主要的负载均衡策略有:轮询,ip_hash,url_hash等,具体策略就不展开讲了,重点是思想。


集群负载均衡


随着系统的演进,现在大部分系统都是分布式系统。分布式系统,根据业务垂直拆分系统,就会有多个集群部署。例如:会员集群、商品集群、订单集群、库存集群等等。每个集群里面起码有3个或者3个以上的节点,在前端调用后端服务,或者业务层调用服务层的时候,就需要负载均衡了。

根据业务场景的不同,做不同的负载均衡。


负载均衡策略


四大基本算法

1.随机
2.轮询
3.hash
4.一致性hash

其他算法

1.随机-权重
2.轮询-权重
3.最近最少活跃

其他算法,都是在基本的算法上做优化的,都是根据特定的业务场景来设计的。所以,离开业务谈架构,就是耍流氓。

架构设计,不是为了设计而设计,而是为了解决某个领域的问题而设计的。

总结

以上观点,都是本人观点,本人才疏学浅,有说的不对的地方,还需要大家不吝赐教。交流的过程,也是学习的过程。希望,能给你一个整体的感官认识。谢谢大家!

你可能感兴趣的:(学习笔记)