网站架构:负载均衡(下).docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
网站架构:负载均衡(下) 硬件负载均衡功能优越,功能全面,但是价格昂贵,一般适合初期或者土豪级公司长期使用。因而软件负载均衡在互联网领域大量使用。常用的软件负载均衡软件有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模式。通过直接操作内核层数据,削减应用

文档评论(0)

duanbingbing + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档