首页 > 经验 > 关键词 > 大型网站架构最新资讯 > 正文

大型网站架构系列:负载均衡详解(下)

2016-02-25 14:05 · 稿源:ITFLY8

 

上一篇:《大型网站架构系列:负载均衡详解(上)》

 

一、软件负载均衡概述

硬件负载均衡性能优越,功能全面,但是价格昂贵,一般适合初期或者土豪级公司长期使用。因此软件负载均衡在互联网领域大量使用。常用的软件负载均衡软件有Nginx,Lvs,HaProxy等。

二、Ngnix负载均衡

Ngnix是一款轻量级的Web服务器/反向代理服务器,工作在七层Http协议的负载均衡系统。具有高性能、高并发、低内存使用等特点。是一个轻量级的Http和反向代理服务器。Nginx使用epoll and kqueue作为开发模型。能够支持高达 50,000 个并发连接数的响应。

操作系统:Liunx,Windows(Linux、FreeBSD、Solaris、Mac OS X、AIX以及Microsoft Windows)

开发语言:C

并发性能:官方支持每秒5万并发,实际国内一般到每秒2万并发,有优化到每秒10万并发的。具体性能看应用场景。

2.1.特点

1.模块化设计:良好的扩展性,可以通过模块方式进行功能扩展。

2.高可靠性:主控进程和worker是同步实现的,一个worker出现问题,会立刻启动另一个worker。

3.内存消耗低:一万个长连接(keep-alive),仅消耗2.5MB内存。

4.支持热部署:不用停止服务器,实现更新配置文件,更换日志文件、更新服务器程序版本。

5.并发能力强:官方数据每秒支持5万并发;

6.功能丰富:优秀的反向代理功能和灵活的负载均衡策略

2.2.功能

2.2.1基本功能

支持静态资源的web服务器。

http,smtp,pop3协议的反向代理服务器、缓存、负载均衡;

支持FASTCGI(fpm)

支持模块化,过滤器(让文本可以实现压缩,节约带宽),ssl及图像大小调整。

内置的健康检查功能

基于名称和ip的虚拟主机

定制访问日志

支持平滑升级

支持KEEPALIVE

支持url rewrite

支持路径别名

支持基于IP和用户名的访问控制。

支持传输速率限制,支持并发数限制。

2.2.2扩展功能

2.2.3性能

Nginx的高并发,官方测试支持5万并发连接。实际生产环境能到2-3万并发连接数。10000个非活跃的HTTP keep-alive 连接仅占用约2.5MB内存。三万并发连接下,10个Nginx进程,消耗内存150M。淘宝tengine团队测试结果是“24G内存机器上,处理并发请求可达200万”。

2.3架构

2.3.1Nginx的基本工作模式

一个master进程,生成一个或者多个worker进程。但是这里master是使用root身份启动的,因为nginx要工作在80端口。而只有管理员才有权限启动小于低于1023的端口。master主要是负责的作用只是启动worker,加载配置文件,负责系统的平滑升级。其它的工作是交给worker。那么当worker被启动之后,也只是负责一些web最简单的工作,而其他的工作都是有worker中调用的模块来实现的。

模块之间是以流水线的方式实现功能的。流水线,指的是一个用户请求,由多个模块组合各自的功能依次实现完成的。比如:第一个模块只负责分析请求首部,第二个模块只负责查找数据,第三个模块只负责压缩数据,依次完成各自工作。来实现整个工作的完成。

他们是如何实现热部署的呢?其实是这样的,我们前面说master不负责具体的工作,而是调用worker工作,他只是负责读取配置文件,因此当一个模块修改或者配置文件发生变化,是由master进行读取,因此此时不会影响到worker工作。在master进行读取配置文件之后,不会立即的把修改的配置文件告知worker。而是让被修改的worker继续使用老的配置文件工作,当worker工作完毕之后,直接当掉这个子进程,更换新的子进程,使用新的规则。

2.3.2Nginx支持的sendfile机制

Sendfile机制,用户将请求发给内核,内核根据用户的请求调用相应用户进程,进程在处理时需要资源。此时再把请求发给内核(进程没有直接IO的能力),由内核加载数据。内核查找到数据之后,会把数据复制给用户进程,由用户进程对数据进行封装,之后交给内核,内核在进行tcp/ip首部的封装,最后再发给客户端。这个功能用户进程只是发生了一个封装报文的过程,却要绕一大圈。因此nginx引入了sendfile机制,使得内核在接受到数据之后,不再依靠用户进程给予封装,而是自己查找自己封装,减少了一个很长一段时间的浪费,这是一个提升性能的核心点。

以上内容摘自网友发布的文章,简单一句话是资源的处理,直接通过内核层进行数据传递,避免了数据传递到应用层,应用层再传递到内核层的开销。

目前高并发的处理,一般都采用sendfile模式。通过直接操作内核层数据,减少应用与内核层数据传递。

2.3.3Nginx通信模型(I/O复用机制)

开发模型:epoll和kqueue。

支持的事件机制:kqueue、epoll、rt signals、/dev/poll 、event ports、select以及poll。

支持的kqueue特性包括EV_CLEAR、EV_DISABLE、NOTE_LOWAT、EV_EOF,可用数据的数量,错误代码.

支持sendfile、sendfile64和sendfilev;文件AIO;DIRECTIO;支持Accept-filters和TCP_DEFER_ACCEP.

以上概念较多,大家自行百度或谷歌,知识领域是网络通信(BIO,NIO,AIO)和多线程方面的知识。

2.4均衡策略

nginx的负载均衡策略可以划分为两大类:内置策略和扩展策略。内置策略包含加权轮询和ip hash,在默认情况下这两种策略会编译进nginx内核,只需在nginx配置中指明参数即可。扩展策略有很多,如fair、通用hash、consistent hash等,默认不编译进nginx内核。由于在nginx版本升级中负载均衡的代码没有本质性的变化,因此下面将以nginx1.0.15稳定版为例,从源码角度分析各个策略。

2.4.1. 加权轮询(weighted round robin)

轮询的原理很简单,首先我们介绍一下轮询的基本流程。如下是处理一次请求的流程图:

图中有两点需要注意:

第一,如果可以把加权轮询算法分为先深搜索和先广搜索,那么nginx采用的是先深搜索算法,即将首先将请求都分给高权重的机器,直到该机器的权值降到了比其他机器低,才开始将请求分给下一个高权重的机器;

第二,当所有后端机器都down掉时,nginx会立即将所有机器的标志位清成初始状态,以避免造成所有的机器都处在timeout的状态,从而导致整个前端被夯住。

2.4.2. ip hash

ip hash是nginx内置的另一个负载均衡的策略,流程和轮询很类似,只是其中的算法和具体的策略有些变化,如下图所示:

2.4.3. fair

fair策略是扩展策略,默认不被编译进nginx内核。其原理是根据后端服务器的响应时间判断负载情况,从中选出负载最轻的机器进行分流。这种策略具有很强的自适应性,但是实际的网络环境往往不是那么简单,因此要慎用。

2.4.4 通用hash、一致性hash

这两种也是扩展策略,在具体的实现上有些差别,通用hash比较简单,可以以nginx内置的变量为key进行hash,一致性hash采用了nginx内置的一致性hash环,可以支持memcache。

2.5场景

Ngnix一般作为入口负载均衡或内部负载均衡,结合反向代理服务器使用。以下架构示例,仅供参考,具体使用根据场景而定。

2.5.1入口负载均衡架构

Ngnix服务器在用户访问的最前端。根据用户请求再转发到具体的应用服务器或二级负载均衡服务器(LVS)

2.5.2内部负载均衡架构

LVS作为入口负载均衡,将请求转发到二级Ngnix服务器,Ngnix再根据请求转发到具体的应用服务器。

  • 相关推荐
  • 大家在看
  • Serverless架构的前世今生

    一、Serverless简介云计算的不断发展,涌现出很多改变传统IT架构和运维方式的新技术,而以虚拟机、容器、微服务为代表的技术更是在各个层面不断提升云服务的技术能力,它们将应用和环境中很多通用能力变成了一种服务。但无论这些技术应用在哪里,帮助企业“降本增效”是技术变革永恒的主题。Serverless架构的出现,带来了跨越式的变革。Serverless下主机管理、操作系统管理、基础软件的部署运维、资源分配和扩缩容能力全部由云厂?

  • 飞猪组织架构调整,庄卓然任飞猪总裁

    近日阿里旗下的飞猪平台进行组织架构调整,本次调整就包括原飞猪总裁赵颖将不再担任该职务,接任者为阿里巴巴集团副总裁、阿里文娱CTO兼优酷COO庄卓然。

  • 飞猪回应组织架构调整:系集团内正常轮岗

    飞猪近日进行了一轮组织架构调整,其中阿里巴巴集团资深副总裁、蚂蚁金服国际事业群总裁赵颖(芷雪)不再兼任飞猪总裁,未来将专注于蚂蚁金服国际业务;阿里巴巴集团副总裁、阿里文娱CTO兼优酷COO庄卓然(南天)接任飞猪总裁。对于该组织架构调整,飞猪方面回应称,系集团内部正常轮岗。

  • 飞猪回应“组织架构调整”:集团内部正常轮岗

    今日,针对“组织架构调整”的报道,飞猪回应称,系集团内部正常轮岗。此前,有媒体报道称,飞猪已进行一轮组织架构调整,其中包括飞猪总裁由阿里巴巴集团副总裁、阿里文娱CTO兼优酷COO庄卓然(花名:南天)接任;阿里巴巴集团资深副总裁、蚂蚁金服国际事业群总裁赵颖(花名:芷雪)不再兼任飞猪总裁,未来将专注于蚂蚁金服国际业务。

  • 大牛Jim Keller离职 Intel CPU架构将由印度裔高管Raja主导

    今天早上,加入Intel公司不过2年多时间的Jim Keller突然宣布离职,理由是多陪陪家人,辞职将立即生效。在这个CPU大牛离职之后,Intel的团队实际上有一次大规模人员变动,目前主导Intel GPU业务的

  • 苹果Mac弃用英特尔芯片,将引入自研ARM架构芯片

    苹果2020年开发者大会(WWDC)在北京时间凌晨1点正式召开,在本次发布会上苹果公布了一项轰动的消息,即苹果未来将会引入自研的ARM架构芯片,逐步取代现在使用的英特尔芯片,苹果Mac弃用英特尔芯片无疑是对后者巨大的打击。

  • 苹果Mac弃用英特尔芯片 全面引入自研ARM架构芯片

    在苹果开发者大会上,除了发布iOS14 之外,还有一个重磅的点就是苹果电脑要更换处理器了。在发布会上,苹果表示,未来的Mac电脑将不再使用英特尔芯片,而是全面引入自研的ARM架构芯片。

  • 享学课堂Java进阶架构班三期6月开营

    疫情过后,网课的热度依旧没有褪去。虽然刚刚过完“金三银四”程序员面试跳槽的旺季,但是还是有很多程序员继续选择学习深造,提高技术水平,为下一个面试跳槽周期“金九银十”做准备。据享学课堂官方提供的数据,在 2020 年第一季度Java类目下新增VIP学员超过 1000 人,Java课堂VIP总人数已经超过 6000 人。为提高教学服务,保证每位学员得到高质量的学习效果,本月开始享学课堂Java进阶架构班三期正式开营。享学课堂Java进阶架构

  • 滴滴网约车架构调整,付强:提供有口皆碑的服务

    6月18日,滴滴网约车平台公司发布组织和人事任命内部公告,将司机服务部中的司机组织化等团队,转移到大区管理中心。

  • exands连续被海底捞点赞,基础架构为餐企降本增效

    有人说海底捞的成功来自于独特的企业文化,感动员工,让员工去感动客人。其实海底捞跟供应商之间的关系也是一样的,以诚意相互成就,一起成长。今年 5 月,exands(兴容信息)被海底捞评选为 2019 年度优秀合作伙伴。exands是海底捞国内所有门店的信息化基础架构运营商,已连续两年荣获该奖。年初,餐饮行业经历了全面洗牌,一些中小商家因歇业、现金困境而被迫关门倒闭,大型连锁企业通过各种方式来减少支出,思考转型升级,借助?

  • Pensando在云基础架构霸权之战中挑战亚马逊

    统一网络组件,以便可以整体使用它们是思科系统公司通过恰当地命名为统一计算系统(通常称为UCS)解决的难题。现在,随着软件使用量的不断发展变化,随处可用,随时可用的模型,挑战在于如何使网络变得灵活。随着Pensando Systems Inc.在隐身模式下于2019年底推出,思科著名的MPLS帮派及其USC团队正着手为网络基础架构创造新的选择,并挑战Amazon Inc.的Annapurna Labs创新王冠。“让我们建造更大,更美的东西,即使我们

  • 苹果自研cpu是什么时候开始的 Mac自研CPU架构、性能详细介绍

    此前苹果分析师郭明錤表示,在 2020 年第四季度或 2021 年第一季度,苹果将推出自家定制处理器的Mac机型。日前据彭博社报道,苹果将会在本月举行的 WWDC20 上宣布 Mac 产品线从英特尔 CPU 过渡到自研 CPU 的计划,基于 ARM 架构。

  • 拼多多宣布组织架构升级:CTO陈磊出任公司首席执行官

    拼多多创始人、董事长黄峥发布公司全员信,宣布公司原CTO陈磊将出任首席执行官。黄峥则继续担任董事长。黄峥表示,这几年里,拼多多经历了飞速的发展。“团队的快速扩张,业务的高速增长和外部环境的剧烈变化,都在催促我们进一步迭代升级我们的管理团队和公司治理结构。”此次调整后,黄峥将花更多时间和董事会制定公司中长期战略,研究完善包括合伙人机制在内的公司治理结构,努力从制度层面推进拼多多

  • 拼多多组织架构升级:CTO陈磊出任CEO,黄峥继续担任董事长

    DoNews 7月1日消息(记者 程梦玲)拼多多公司创始人、董事长黄峥通过致全员信的方式宣布,经董事会批准公司原CTO陈磊将出任首席执行官。黄峥则继续担任董事长。此次调整后,黄峥将花更多时间和董事会制定公司中长期战略,研究完善包括合伙人机制在内的公司治理结构。为此,黄峥将划出个人名下拼多多上市公司的7.74%股份给到拼多多合伙人集体。其中一部分可以在不影响拼多多现有股东利益的情况下,进行一些长期基础研究和社会公益等

  • Intel 11代酷睿8核心首曝:CPU架构疑似Sunny Cove

    Intel即将发布代号Tiger Lake的第11代低功耗移动版酷睿处理器,全新的10nm+增强工艺、Willow Cove CPU架构、Xe GPU架构,而在桌面上的第11代将是Rocket Lake-S,仍旧是14nm工艺,但也会有新的CP

  • 滴滴网约车架构调整付强:业务已恢复到去年同期水平

    【TechWeb】6月18日消息,今日滴滴网约车平台公司发布组织和人事任命内部公告,将司机服务部中的司机组织化等团队,转移到大区管理中心。更加闭环的建设司机线下管理相关中台能力,增进与滴滴司机面对面的管理、赋能和服务,持续建设网约车司机生态。滴滴网约车平台公司CEO付强发布内部信表示,“要做好司机服务,仅靠线上化的能力和规则是不够的,必须有一支有同理心,善于沟通,执行力强的线下司机服务经理团队。”去年滴滴成立

  • 滴滴出行:升级出租车事业部组织架构任命石东海为总经理

    滴滴出行今日公布出租车事业部组织架构升级及人事调整。任命石东海担任出租车事业部总经理,向CEO程维汇报,同时兼任普惠产品技术负责人,向CTO张博汇报。据悉,石东海于2015年加入快的打车,任出租车技术负责人,滴滴与快的合并后,历任代驾、品质出行事业群及普惠出行事业群等产品技术负责人。调整后,滴滴出租车事业部助理总经理兼运营部负责人殷凯、技术部负责人袁哲明、产品部负责人隋信杰?

  • 华米发布RISC-V架构黄山2号自研芯片:已流片成功 Q4量产

    在今天下午举办的AI创新大会上,华米科技发布新一代可穿戴设备AI芯片——黄山2号。官方表示,这也许是全球最优秀的可穿戴芯片。华米科技CEO黄汪表示,由于使用场景的约束和限制,

  • 拼多多组织架构升级:CTO陈磊出任公司首席执行官 黄峥继续担任董事长

    在上市将满两年,用户数已超过 6 亿后,拼多多今天正式迎来了组织升级,公司创始人、董事长黄峥正式宣布,经董事会批准,公司原CTO陈磊将出任首席执行官,而他本人则继续担任公司董事长。同时,拼多多还任命高级副总裁朱健翀为公司首席法务官(General Counsel),任命马靖为公司财务副总裁。

  • 美团组织架构调整:充电宝、两轮、地图等业务调整至美团平台

    今日,美团发布组织调整公告称,为进一步加强线下线上流量品牌一体化,强化美团平台建设,将原 LBS 平台下属充电宝业务部、两轮事业部、公交业务部、地图服务部调整至美团平台,相关负责人向美团平台负责人李树斌汇报,李树斌继续向联合创始人王慧文汇报。

  • 参与评论
文明上网理性发言,请遵守新闻评论服务协议

热文

  • 3 天
  • 7天