楼主你好。希望对你有帮助。高并发对于后台开发的学生来说,既熟悉又陌生。熟悉是因为面试和工作中经常提到。奇怪的原因是很少有因为高并发导致服务器出现问题的情况。同时,也需要获得这方面的经验。
在早期的互联网应用中,由于用户流量小,业务逻辑简单,往往单台服务器就能满足负载需求。随着上网流量越来越大,稍微好一点的系统访问量非常大,系统功能也越来越复杂。因此,即使单个服务器的性能得到优化,它也可能支撑不了这么大数量用户的访问压力。这时候就需要使用多台机器,设计一个高性能的集群来应对。负载均衡方案的三种实现策略:
??一、多台服务器如衡流量,组成高性能集群?
??负载均衡是指用户访问的流量通过a"负载平衡器和,后端的服务器可以独立响应和处理请求,从而达到负载分布的效果。负载均衡技术提高了系统的服务能力,增强了应用程序的可用性。
??第二,负载均衡方案有多少种?
??目前,市场上最常见的负载均衡技术方案有三种:
??1.基于dns的负载均衡
??2.基于硬件的负载平衡
??3.基于软件的负载均衡。
??这三种方案各有利弊。dns负载均衡可以实现区域内的流量均衡。硬件负载均衡主要用于大型服务器集群中的负载需求,而软件负载均衡多基于机器级的流量均衡。在实际场景中,这三者可以结合使用。让让我们来详细讨论一下:
??第三,基于dns的负载均衡
??1.基于dns的负载均衡其实是最简单的实现方案,只需要简单配置dns服务器就可以实现。
??原理是用户在访问一个域名时,会先将域名对应的ip地址解析到dns服务器。这时候我们可以让dns服务器根据不同地理位置的用户返回不同的ip。比如南方的用户会返回我们广州的业务服务器的ip,北方的用户如果访问,我会返回北京的业务服务器的ip。
??在这种模式下,用户相当于根据就近原则进行流式请求,既减轻了单个集群的负载压力,又提高了用户的访问速度。
??使用dns进行负载平衡的天然优势是简单的配置、非常低的实现成本以及没有额外的开发和维护工作。
??但也有一个明显的缺点:配置修改时,不能及时生效。这是由于dns的特点,dns一般有多级缓存,所以当我们修改dns配置后,由于缓存的原因,ip变化会不及时,影响负载均衡的效果。
??另外,如果使用dns进行负载均衡,多是基于区域或者简单的ip轮询,没有更高级的路由策略,所以这也是dns方案的局限性。
??2.基于硬件的负载平衡
??硬件负载均衡太棒了。比如著名的f5网络big-ip,也就是常说的f5,就是一个网络设备。你可以简单的理解为类似于网络交换机的东西。通过硬件完全抗压,性能非常好。每秒可以处理的请求数达到百万,也就是每秒的负载。当然价格非常非常贵,几十万到几百万不等。
??因为这类设备一般用在大型互联网公司的流量入口最前端,、国企等不缺钱的企业都会用。普通中小公司都不愿意用。
??如果用f5硬件做负载均衡,主要是省心省事,买一个就搞定,性能强大,一般业务就更不用说了。此外,它还在负载均衡算法上支持许多灵活的策略,并具有一些安全功能,如防火墙。但缺点也很明显,一个字:贵。
??3.基于软件的负载平衡
??软件负载平衡是指使用软件来分配和平衡流量。软件负载均衡分为7层协议和4层协议。
??网络协议有七层。基于第四传输层的流量分配方案称为四层负载均衡,如lvs,基于第七应用层的流量分配方案称为七层负载均衡,如nginx。这两者在性能和灵活性上存在一些差异。
??基于四层的负载均衡性能更高,一般可以达到几十万/秒,而基于七层的负载均衡性能一般只有几万/秒。
??基于软件的负载均衡的特点也很明显,而且便宜。可以部署在普通的服务器上,不需要额外采购,或者放一点技术进去优化,所以这种是互联网公司中用的最多的一种。