
课程咨询: 400-996-5531
投诉建议: 400-111-8989
认真做教育 专心促就业
负载均衡问题是大多数软件开发程序员在开发软件的时候都需要长期关注的一个问题,而本文我们就通过案例分析来简单了解一下,负载均衡技术应用注意事项分析。
负载均衡已经不是什么新的概念了,负载均衡也不仅仅就指的把一些服务器放在一起实现分压。负载均衡是一个统称。而我们平时谈的多的就是服务器负载均衡,全球负载均衡,防火墙负载均衡,缓存负载均衡!(在后面,会慢慢的讲述各个方面)。
就拿服务器负载均衡而言,它主要是把请求分摊在多个服务器资源上面。负载均衡还可以实现很精确的服务器健康检查机制,请求的转发。另外,因为负载均衡部署在服务器的前端,所以,它也可以包含服务器免受恶意用户的攻击,提高安全。同时,还可以基于IP数据包中的信息进行智能的选择不同的程序,不同的服务器来处理!
负载均衡的必要性
随着互联网的普及,越来越多的人开始在线使用服务。同时,也不能容忍网络突然崩溃或者网速、服务的性能超低,特别是对于涉及到网上交易的应用而言,任何一点问题的出现,都是重大的经济损失。为了保证提供更好,更稳定的服务,我们会不断升级服务器的相关设备。
虽然说根据摩尔定律:计算机的处理速度每18个月会翻一番。但是这个速度依然赶不上互联网放在的速度和用户对服务的需要,并且购买更好的设备,不仅仅昂贵,性价比也不理想。
那么这里其实就已经涉及到了一个可伸缩性的挑战。下面,我们就来看看一些常用的可伸缩性方案。
正如之前所说的,计算机的更新速度无法赶上用户需要,这个时候集群技术就应用而生了,这个技术主要是那些大型计算机厂商提供的,集群技术的提出在一定的程度上面缓和了之前的问题。下面,我们就来看看两种比较的集群技术:松耦合系统,对称多处理器系统。
松耦合系统
松耦合系统是由很多的完全相同的计算机块组成,这些计算机块之间通过系统的总线连接。其中,每一个块都包含各种的处理器,内存,磁盘控制器,磁盘驱动,网络接口等。其实,每个块都可以看出是一个独立的计算机,只不过现在他们被聚在了一起。
松耦合的计算机集群系统采用处理器通信技术,讲负责分摊到多个处理器上面。这个系统只有在任务可以被分割的情况下发挥很好的伸缩性。例如,我们现在有一个任务要去返回一个表中所有的数据,并且这个表中的数据已经分割成为了多个不同的文件,放在磁盘上面。这个时候,采用松耦合的计算机集群技术,就可以讲查询任务分为多个不同的并行的子任务去查询,每个子任务去一个文件中查找,后将结果合并后返回。
但是,不是所有的任务都是可以被分割的。例如,有个任务需要去更新之前那个表中的某个字段,那么此时,即使有这个更新任务被再次分割为小的子任务,但是因为需要更新的字段肯定是位于之间的一个文件中的,那就是说:后只有一个子任务在真正执行,其余的子任务在打混,闲了。
另外,为了使得松耦合的计算机集群系统获取很好的伸缩性,这个系统还需要很多的技术去支持,也需要很多的人员维护,成本非常的高。
对称多处理器系统
对称多处理器系统(SMP)采用多核共享内存(其实这也会导致性能问题,现在很多的计算机,特别是多核的服务器,都是采用的非对称内存的方式,大家感兴趣可以去研究下)。在这种系统中,为了达到很好的伸缩性,我们开发的应用程序必须采用多线程的技术(并且,也是需要将一个任务分为结果子任务来运行,而不同的子任务运行在不同的线程上面)。这些线程共享内存,并且通过内在的方式进行通信。同时,操作系统也会去调度这些线程,使得他们运行在多核上面。同样,这个前面的系统有这同样类似的问题。
我们知道,传统的交换机和路由器会根据数据包中的IP地址和MAC地址来决定将数据包发送到何处。但是,这个简单的转发能力无法满足现在负责的WebFarm的需求。例如,传统的路由器或交换机不能够比较智能的将数据包发送给特定的应用程序、特定的服务器等。即使有服务器down了,路由器等还是会将数据包发给这个服务器。
【免责声明】本文系本网编辑部分转载,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及作品内容、版权和其它问题,请在30日内与管理员联系,我们会予以更改或删除相关文章,以保证您的权益!更多内容请加danei456学习了解。欢迎关注“达内在线”参与分销,赚更多好礼。