腾讯六M架构内部稿件培训课件

上传人:yuzo****123 文档编号:138245085 上传时间:2020-07-14 格式:PPT 页数:29 大小:817KB
返回 下载 相关 举报
腾讯六M架构内部稿件培训课件_第1页
第1页 / 共29页
腾讯六M架构内部稿件培训课件_第2页
第2页 / 共29页
腾讯六M架构内部稿件培训课件_第3页
第3页 / 共29页
腾讯六M架构内部稿件培训课件_第4页
第4页 / 共29页
腾讯六M架构内部稿件培训课件_第5页
第5页 / 共29页
点击查看更多>>
资源描述

《腾讯六M架构内部稿件培训课件》由会员分享,可在线阅读,更多相关《腾讯六M架构内部稿件培训课件(29页珍藏版)》请在金锄头文库上搜索。

1、xizhu 2010年3月,LAM架构简介,目录,LAM概述 基于B/S的Web系统三层体系 什么是LAM LAM的组成体系 System: Lux/Unix Server: Aache Storage: MySQL+Memcached Scrit: H/erl/ython 经典LAM架构网站分析 几种网站架构比较,H简介 H的发展历程 H的企业级应用 全球使用H的网站 H的运行环境 H的开发环境 H的生产管理系统 H的缺点和前瞻 参考资料,基于B/S的Web系统三层体系,软件开发 C/S or B/S C/S:Client/Server B/S:Browser/Server B/S架构的特点

2、 客户端要求低 可维护性很高 数据安全性高 实时交互性好 B/S架构的三层体系 分层式设计:分散关注、松散耦合、逻辑复用、标准定义 界面表现层 业务逻辑层 数据存储层,LAM:LAM是什么?,LAM是什么? 基于开源产品的Web架构:1998年,Michael Kunze为德国计算机杂志ct写了一篇关于Free软件如何成为商业软件替代品的文章时,创建了LAM这个名词 LAM由Lux 操作系统、Aache Web服务器、MySQL数据库和H(erl或ython)脚本语言四种技术的开头字母组成 根据HCha资料统计在Alexa排名中国前200名的网站中有61%的采用了LAM架构,包括腾讯、百度、雅

3、虎、新浪、搜狐、Tom等一大批网站 LAM架构已成为互联网行业的一盏真正的明灯,LAM的组成体系:Server,Server A: Aache,一种占有全球72%市场的开源的Web Server,官方网站 htt:/www.aache.org 最新版本 2.2.8/2.0.63/1.3.41 最gdom的统计表明,Aache仍然主导全美100大网站(Alexa的排名),占据了49%的市场份额 我们公司主要使用自己研发的Web Server,包括Qhttd、TWS、QZHtt、httsrv等,部分业务使用Aache、Lighttd、TomCat,LAM的组成体系:Server,Server,We

4、b Server软件的使用比例分布,LAM的组成体系:Storage,Storage M: MySQL,一种开源的关系型数据库,被下载上千万次,2008年2月26日为Sun收购。我们公司绝大部分数据库都是使用MySQL M: 可以将M的概念扩展到Memcached: Memcached是一个高性能的分布式的内存对象缓存系统,通过在内存里维护一个统一的巨大的hash表,它能够用来存储各种格式的数据,包括图像、视频、文件以及数据库检索的结果等。 M: 从Memcache扩展到,还有一系列产品,包括MySQL的memcacheenge/memcachedbenge、MemcacheQ、Shareda

5、nce(htt:/sharedance.ureftd.org) M: 可以将M的概念再扩展到Table cache:TencentTableCache ,是一个我司互联网系统平台架构组,提供高速数据访问服务的数据库cache server,LAM的组成体系:Storage :Memcached,Memcached 由Danga teractive开发 使用libevent进行网络IO处理,libevent作为一种新的非阻塞网络IO方式以高效的方法(eoll/kqueue)组织IO,分布式散列对象到不同的服务器,查询复杂度是O(1)。 性能特别高,支持多进程和多线程,支持TC和UD协议,支持C、

6、C#、H、erl、ython、Ruby、Java客户端,支持短连接和持久连接。 内存占用少,每个单位的slab和chunk可定制大小 由第三方开发的H客户端,和H紧密结合,H的数组、对象可直接存储,取出时自动还原,数据支持Gzi压缩和二进制传输,并发读写支持CAS(Comare-and-Swa) 大部分H的大型站点都在使用:Facebook、Sa、Sohu、Tom、Yahoo、wikiedia、sourceforge等等, Facebook参与了H官方的Memcache扩展函数库开发维护和版本更新 我们现在Qzone门户、活动、城市达人、校园以及QQ会员等项目广泛使用,自行开发了数据管理、数据

7、恢复、状态监控和报警系统,并实现了无缝扩容,无需数据迁移,LAM的组成体系:Storage :TencentTableCache,TencentTableCache TencentTableCache:是由腾讯互联网业务系统平台架构部主持开发的基于Table结构进行内存存储、以MYSQL作为最终存储的持久数据层系统,以此作为MYSQL cache组件.其性能卓越超群,数据安全可靠。被广泛应用在包括Qzone平台,校友平台等项目上。 该软件使用eoll来管理网络连接。这时当前效率最高的事件通知机制,在大连接情况下尤其能够发挥威力。 该软件架构设计中,后端数据处理模块是独立的进程(heler进程)

8、,这些进程负责存取数据,由watchdog进程来进行监控,可以通过插件支持多种数据源(DB、文件、网络数据源等)。 TTC 3.0的内存分配算法采用glibc的tmalloc算法。TTC在tmalloc基础上稍作修改,譬如内存只在共享内存块内部分配,不会额外mma;内部只能用偏移量而不是指针等。 该软件使用异步处理机制,多状态的task,Task处理模型就像有穷状态机,不需要大量的进程同步等待回应,所以降低了在进程/线程上下文切换上的开销。,LAM的组成体系:Scrit,Scrit : H,也可以泛指H、erl、ython等解释型脚本语言。截至2008年1月全球有33.24%的网站使用H,据统

9、计在Alexa排名中国TO200的网站中,使用H的网站有121个,占60%。在按照行业分类的网站统计中,25个行业的每个行业前10名,共计250个网站中,有102个使用H技术,占40%,Aache平台上使用的语言比例分布,主流语言增长速度比较,LAM的组成体系:Scrit,经典LAM网站架构分析,几种网站架构的比较,1995,1997,1999,2000,2002,2004,2005,H的发展历程和使用H的网站数量图示,H:H发展历程,H: 填补了企业WEB应用的需求,Simle, but Rigid,owerful, but Comlex,ortal Frameworks,Java/J2EE

10、 Alication Framework,Service-Oriented Architecture (SOA),Ga,H: 全球使用H的网站,H: 运行环境,关于H的运行环境,主要有以下五种Web Server,包括Aache、IIS、Lighttd、Zeus、Ngx Aache Aache 2.x版本下提供了refork模式和Worker模式,鉴于H的第三方扩展函数库很多都是不支持多线程的,所以H官方和Zend官方强烈推荐不要使用Worker模式,而是要么继续使用Aache 1.3.x,要么使用Aache 2.x的refork模式 在Aache下,可以使用CGI方式、Aache模块方式(m

11、odh)、FastCGI方式(modfastcgi和modfcgd)三种方式来运行H,其中modh最稳定,modfcgd性能最高,需要说明的是FastCGI方式运行H存在一定风险,经常性会宕掉,无论是modfcgd还是modfastcgi。目前Lux/FreeBSD/Solaris绝大部分H网站使用Aache+refork+ModH方式,包括我们Qzone和QQ会员的所有H项目。,IIS IIS 5/6/7下,主要有三种方式:CGI方式(h.exe)、ISAI方式(Wdows下)和FastCGI方式,而Wdows下目前Zend和微软联合开发推出的基于IIS的H FastCGI加载方式是性能最高

12、的,稳定性也很不错。 Lighttd Lighttd下主要使用FastCGI方式(Sawn-FCG)运行H,网站部()一直在使用这个,缺点是稳定性较差,经常挂掉。 Zeus Zeus是商业软件,使用自带的FastCGI方式来运行H,性能是所有运行H的服务器当中最高的,远超过Aache和Lighttd,但稳定性还待提升。 Ngx Ngx是一款纯静态服务器,需要通过转发的形式,使用Lighttd的Sawn-FCG或者H Build FastCGI来以FastCGI方式运行H,这种方式性能很高但是稳定性较差,目前有很多新的项目采用这一方式,包括新浪的一些新业务和的很多服务器。,H: 运行环境,H:

13、运行环境,H WEB SERVER 使用H 做开发语言,通过底层H扩展的支持.直接运行H代码的WEB SERVER select /eoll两种接入模型。 提供多worker+监控进程方式.支持,runtimes,动态进程调度等相关机制. Qzone校友,第三方应用项目使用. facebook等项目开发过类型组件.,H: 加速器,H的加速器: 在Lux下的加速器包括H官方的AC、第三方的eAccelerator(基于MMCache)和XCache(以上三款都是免费的)、商业的Zend latform(基于Zend erormance Suite / Zend WEnabler,H代码加速和缓存

14、结合了Zend Accelerator和Zend Cache)和ionCube Accelerator。 其中官方的AC稳定性和功能都还不错,目前在Qzone校友等项目中使用,eAccelerator在sa很多项目和QQ会员中使用,Zend latform在百度。 H的加速主要包括: H文件的编译,这个过程中把H程序中clude/require的程序连接进来、常量/宏替换、代码优化合并等等,最后编译成二进制中间码ocode H ocode的Cache,这里大部分加速器都可以支持,将内容Cache到物理内存,超过限额也会cache到服务器本地文件。 H程序动态内容输出的Cache,这个功能仅在Z

15、end latform里支持,可以单独设置对某个目录/文件的内容输出进行Cache(请求的方式GET/OST等以及Cache时间、扫描文件变更时间都可以设置),H: 高级优化,H的FATMM: 改造了H Zend MM 内存管理机制,将小块内存申请调用,变为初始化申请大块内存,在使用时,直接从预先申请的内存里分配空间。大块内存不够时,可动态申请,并动态管理大块内存. 其中需要改造H源码,使用补丁方式,替换ZEND AI里, emalloc, free等函数,改补丁由Facebook开发维护. 目前在Qzone校友等项目中使用。 HiHo for H: 实现了将H代码转换为高品质C+代码,然后用G+编译成可执行的二进制文件,从而大幅减少服务器CU和内存消耗 实现了H的跨请求持久化对象,将进程内存变为多线程共享内存,极大减少了内存占用。 采用了类似FatMM的机制,避免了频繁的malloc和free,可设置固定大小的set Facebook已经有90%的项目使用,同等流量下Web服务器的CU消耗减少50%、AI服务器的CU消耗减少60%,H:

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育 > 教学课件 > 高中课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号