首发于 菜鸟程序员架构师之路
37高性能负载均衡分类及架构

37高性能负载均衡分类及架构

程序员瓶颈突破架构师➕架构设计的理论与实践

每个程序员都有一个成为架构师的梦想,奈何手里无枪无法点燃心中奇梦。本系列文章分享如何让你手里有枪,只要努力,技术的梦想一定能实现,这应该是众多梦想中离地表最近的一个。

高性能集群

单服务器不管怎么优化,采用多好的硬件,总会有一个性能天花板,当单服务器的性能无法满足业务需求时,就需要设计高性能集群来提升系统整体的处理性能。
高性能集群的本质很简单,通过增加更多的服务器来提升系统整体的计算能力。

由于计算本身存在一个特点:同样的输入数据和逻辑,无论在哪台服务器上执行,都应该得到相同的输出。
因此高性能集群设计的复杂度主要体现在任务分配这部分,需要设计合理的任务分配策略,将计算任务分配到多台服务器上执行。

高性能集群的复杂性主要体现在需要增加一个任务分配器,以及为任务选择一个合适的任务分配算法。对于任务分配器,现在更也叫“负载均衡器”。
但这个名称有一定的误导性,会让人潜意识里认为任务分配的目的是要保持各个计算单元的负载达到均衡状态。
而实际上任务分配并不只是考虑计算单元的负载均衡,不同的任务分配算法目标是不一样的,有的基于负载考虑,有的基于性能(吞吐量、响应时间)考虑,有的基于业务考虑。
考虑到“负载均衡”已经成为了事实上的标准术语,这里我也用“负载均衡”来代替“任务分配”,但请你时刻记住,负载均衡不只是为了计算单元的负载达到均衡状态。

今天我先来讲讲负载均衡的分类及架构

负载均衡分类

常见的负载均衡系统包括3种:DNS负载均衡、硬件负载均衡和软件负载均衡。

DNS负载均衡

DNS是最简单也是最常见的负载均衡方式,一般用来实现地理级别的均衡。例如,北方的用户访问北京的机房,南方的用户访问深圳的机房。
DNS负载均衡的本质是DNS解析同一个域名可以返回不同的IP地址。
例如, 同样是www.baidu.com,北方用户解析后获取的地址是39.156.66.18(这是北京机房的IP),南方用户解析后获取的地址是14.215.177.38(这是深圳机房的IP)。
下面是DNS负载均衡的简单示意图:


DNS负载均衡实现简单、成本低,但也存在粒度太粗、负载均衡算法少等缺点。
优点有:

缺点有:

硬件负载均衡

硬件负载均衡是通过单独的硬件设备来实现负载均衡功能,这类设备和路由器、交换机类似,可以理解为一个用于负载均衡的基础网络设备。
目前业界典型的硬件负载均衡设备有两款:F5和A10。这类设备性能强劲、功能强大,但价格都不便宜,一般只有“土豪”公司才会考虑使用此类设备。
普通业务量级的公司一是负担不起,二是业务量没那么大,用这些设备也是浪费。

硬件负载均衡的优点是:

硬件负载均衡的缺点是:

软件负载均衡

软件负载均衡通过负载均衡软件来实现负载均衡功能,常见的有Nginx和LVS,其中Nginx是软件的7层负载均衡,LVS是Linux内核的4层负载均衡。
4层和7层的区别就在于协议和灵活性,Nginx支持HTTP、E-mail协议;而LVS是4层负载均衡,和协议无关,几乎所有应用都可以做,例如,聊天、数据库等。

软件和硬件的最主要区别就在于性能,硬件负载均衡性能远远高于软件负载均衡性能。
Ngxin的性能是万级,一般的Linux服务器上装一个Nginx大概能到5万/秒;LVS的性能是十万级,据说可达到80万/秒;而F5性能是百万级,从200万/秒到800万/秒都有。
软件负载均衡的最大优势是便宜,一台普通的Linux服务器批发价大概就是1万元左右,相比F5的价格,那就是自行车和宝马的区别了。
除了使用开源的系统进行负载均衡,如果业务比较特殊,也可能基于开源系统进行定制(例如,Nginx插件),甚至进行自研。

下面是Nginx的负载均衡架构示意图:


软件负载均衡的优点:

缺点(是和硬件负载均衡相比的,并不是说软件负载均衡没法用):

负载均衡典型架构

前面我们介绍了3种常见的负载均衡机制:DNS负载均衡、硬件负载均衡、软件负载均衡,每种方式都有一些优缺点,
但并不意味着在实际应用中只能基于它们的优缺点进行非此即彼的选择,反而是基于它们的优缺点进行组合使用。
具体来说,组合的基本原则为:

  1. DNS负载均衡用于实现地理级别的负载均衡
  2. 硬件负载均衡用于实现集群级别的负载均衡
  3. 软件负载均衡用于实现机器级别的负载均衡

以一个假想的实例来说明一下这种组合方式,如下图所示:


整个系统的负载均衡分为三层。

需要注意的是,上图只是一个示例,一般在大型业务场景下才会这样用,如果业务量没这么大,则没有必要严格照搬这套架构。
例如,一个大学的论坛,完全可以不需要DNS负载均衡,也不需要F5设备,只需要用Nginx作为一个简单的负载均衡就足够了。

代做工资流水公司淮安代办企业对公流水昆明查房贷流水佛山工作收入证明模板上饶代开入职流水常德代做流水宁波入职流水南宁办企业对私流水台州查询房贷银行流水长沙薪资银行流水代办珠海查企业对公流水成都制作流水账单宜春查询个人流水宜春公司流水样本太原打银行对公流水昆明流水账单开具蚌埠背调银行流水开具铜陵查车贷银行流水揭阳转账银行流水费用岳阳制作入职流水新乡代办贷款银行流水洛阳工资流水单代做鞍山银行流水单模板办理车贷工资流水廊坊银行流水PS代开武汉做对公银行流水长沙房贷流水费用上海企业对私流水价格长沙开银行流水修改信阳银行流水账单代做唐山企业对公流水代做香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声卫健委通报少年有偿捐血浆16次猝死汪小菲曝离婚始末何赛飞追着代拍打雅江山火三名扑火人员牺牲系谣言男子被猫抓伤后确诊“猫抓病”周杰伦一审败诉网易中国拥有亿元资产的家庭达13.3万户315晚会后胖东来又人满为患了高校汽车撞人致3死16伤 司机系学生张家界的山上“长”满了韩国人?张立群任西安交通大学校长手机成瘾是影响睡眠质量重要因素网友洛杉矶偶遇贾玲“重生之我在北大当嫡校长”单亲妈妈陷入热恋 14岁儿子报警倪萍分享减重40斤方法杨倩无缘巴黎奥运考生莫言也上北大硕士复试名单了许家印被限制高消费奥巴马现身唐宁街 黑色着装引猜测专访95后高颜值猪保姆男孩8年未见母亲被告知被遗忘七年后宇文玥被薅头发捞上岸郑州一火锅店爆改成麻辣烫店西双版纳热带植物园回应蜉蝣大爆发沉迷短剧的人就像掉进了杀猪盘当地回应沈阳致3死车祸车主疑毒驾开除党籍5年后 原水城县长再被查凯特王妃现身!外出购物视频曝光初中生遭15人围殴自卫刺伤3人判无罪事业单位女子向同事水杯投不明物质男子被流浪猫绊倒 投喂者赔24万外国人感慨凌晨的中国很安全路边卖淀粉肠阿姨主动出示声明书胖东来员工每周单休无小长假王树国卸任西安交大校长 师生送别小米汽车超级工厂正式揭幕黑马情侣提车了妈妈回应孩子在校撞护栏坠楼校方回应护栏损坏小学生课间坠楼房客欠租失踪 房东直发愁专家建议不必谈骨泥色变老人退休金被冒领16年 金额超20万西藏招商引资投资者子女可当地高考特朗普无法缴纳4.54亿美元罚金浙江一高校内汽车冲撞行人 多人受伤

代做工资流水公司 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化