腾讯LAMP架构(内部稿件)

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

xizhu2010年3月LAMP架构简介目录LAMP概述基于B/S的Web系统三层体系什么是LAMPLAMP的组成体系System:Linux/UnixServer:ApacheStorage:MySQL+MemcachedScript:PHP/Perl/Python经典LAMP架构网站分析几种网站架构比较PHP简介PHP的发展历程PHP的企业级应用全球使用PHP的网站PHP的运行环境PHP的开发环境PHP的生产管理系统PHP的缺点和前瞻参考资料基于B/S的Web系统三层体系软件开发C/SorB/SC/S:Client/ServerB/S:Browser/ServerB/S架构的特点客户端要求低可维护性很高数据安全性高实时交互性好B/S架构的三层体系分层式设计:分散关注、松散耦合、逻辑复用、标准定义界面表现层业务逻辑层数据存储层LAMP:LAMP是什么?LAMP是什么?基于开源产品的Web架构:1998年,MichaelKunze为德国计算机杂志c‘t写了一篇关于Free软件如何成为商业软件替代品的文章时,创建了LAMP这个名词LAMP由Linux操作系统、ApacheWeb服务器、MySQL数据库和PHP(Perl或Python)脚本语言四种技术的开头字母组成根据PHPChina资料统计在Alexa排名中国前200名的网站中有61%的采用了LAMP架构,包括腾讯、百度、雅虎、新浪、搜狐、Tom等一大批网站LAMP架构已成为互联网行业的一盏真正的明灯LAMP的组成体系:SystemSystemL:Linux,包括但不限于Linux,我们认为可以泛指各种Linux/Unix系统,RedHat、Suse、Debian、Turbo、FreeBSD、Solaris…甚至包括了PS3的YellowDogLinux和Apple的MacOS10.5Leopard我们公司主要使用的系统:SuseLinux和SlackwareLinuxLAMP的组成体系:ServerServerA:Apache,一种占有全球72%市场的开源的WebServer,官方网站最近Pingdom的统计表明,Apache仍然主导全美100大网站(Alexa的排名),占据了49%的市场份额我们公司主要使用自己研发的WebServer,包括Qhttpd、TWS、QZ_Http、httpsrv等,部分业务使用Apache、Lighttpd、TomCatLAMP的组成体系:ServerServerWebServerPopularitySunONE1%Zeus1%Others4%IIS22%Apache72%WebServer软件的使用比例分布LAMP的组成体系:StorageStorageM:MySQL,一种开源的关系型数据库,被下载上千万次,2008年2月26日为Sun收购。我们公司绝大部分数据库都是使用MySQLM:可以将M的概念扩展到Memcached:Memcached是一个高性能的分布式的内存对象缓存系统,通过在内存里维护一个统一的巨大的hash表,它能够用来存储各种格式的数据,包括图像、视频、文件以及数据库检索的结果等。M:从Memcache扩展到,还有一系列产品,包括MySQL的memcache_engine/memcachedb_engine、MemcacheQ、Sharedance()M:可以将M的概念再扩展到Tablecache:TencentTableCache,是一个我司互联网系统平台架构组,提供高速数据访问服务的数据库cacheserverLAMP的组成体系:Storage:MemcachedMemcached由DangaInteractive开发使用libevent进行网络IO处理,libevent作为一种新的非阻塞网络IO方式以高效的方法(epoll/kqueue)组织IO,分布式散列对象到不同的服务器,查询复杂度是O(1)。性能特别高,支持多进程和多线程,支持TCP和UDP协议,支持C、C#、PHP、Perl、Python、Ruby、Java客户端,支持短连接和持久连接。内存占用少,每个单位的slab和chunk可定制大小由第三方开发的PHP客户端,和PHP紧密结合,PHP的数组、对象可直接存储,取出时自动还原,数据支持Gzip压缩和二进制传输,并发读写支持CAS(Compare-and-Swap)大部分PHP的大型站点都在使用:Facebook、Sina、Sohu、Tom、Yahoo、51.com、wikipedia、sourceforge等等,Facebook参与了PHP官方的Memcache扩展函数库开发维护和版本更新我们现在Qzone门户、活动、城市达人、校园以及QQ会员等项目广泛使用,自行开发了数据管理、数据恢复、状态监控和报警系统,并实现了无缝扩容,无需数据迁移LAMP的组成体系:Storage:TencentTableCacheTencentTableCacheTencentTableCache:是由腾讯互联网业务系统平台架构部主持开发的基于Table结构进行内存存储、以MYSQL作为最终存储的持久数据层系统,以此作为MYSQLcache组件.其性能卓越超群,数据安全可靠。被广泛应用在包括Qzone平台,校友平台等项目上。该软件使用epoll来管理网络连接。这时当前效率最高的事件通知机制,在大连接情况下尤其能够发挥威力。该软件架构设计中,后端数据处理模块是独立的进程(helper进程),这些进程负责存取数据,由watchdog进程来进行监控,可以通过插件支持多种数据源(DB、文件、网络数据源等)。。TTC3.0的内存分配算法采用glibc的ptmalloc算法。TTC在ptmalloc基础上稍作修改,譬如内存只在共享内存块内部分配,不会额外mmap;内部只能用偏移量而不是指针等。该软件使用异步处理机制,多状态的task,Task处理模型就像有穷状态机,不需要大量的进程同步等待回应,所以降低了在进程/线程上下文切换上的开销。LAMP的组成体系:ScriptScriptP:PHP,也可以泛指PHP、Perl、Python等解释型脚本语言。截至2008年1月全球有33.24%的网站使用PHP,据统计在Alexa排名中国TOP200的网站中,使用PHP的网站有121个,占60%。在按照行业分类的网站统计中,25个行业的每个行业前10名,共计250个网站中,有102个使用PHP技术,占40%01020304050mod_perlPHPmod_pythonApacheModulesPopularity(%)Apache平台上使用的语言比例分布主流语言增长速度比较LAMP的组成体系:Script经典LAMP网站架构分析SystemServerStorageScriptYahooFreeBSD+LinuxApacheMySQLPHPFacebookFreeBSDApacheMySQL+MemcachedPHPWikimediaLinuxApache+LighttpdMySQL+MemcachedPHPFlickrRedhatLinuxApacheMySQL+MemcachedPHP+PerlSinaFreeBSD+SolarisApache+NginxMySQL+MemcachedbPHPAudiogalaxyLinuxApacheMySQLPHPFriendsterLinuxApacheMySQLPHP+PerlYouTubeSuseLinuxApache+LighttpdMySQLPythonMixi.jpLinuxApacheMySQL+MemcachedPerlTypePadLinuxApacheMySQL+MemcachedPerlliveJournalLinuxApacheMySQL+MemcachedPerl几种网站架构的比较MS.NETSUNJ2EELAMPTencentSystemWindows2008/2003跨平台跨平台LinuxServerIIS6.0+Tomcat/JBOSS/Resein/WebLogic/WebSphereApache/IIS/Lighttpd/ZWS/NginxApache/Httpsrv/TWS/QZHttpScriptC#/VB.netJSPPHP/Perl/PythonC/C++运行模式ISAPIApacheModule/CGI/FastCGI/ISAPI/CGI/FastCGI进程/线程模型多线程多线程多进程/内核支持多线程多进程/多线程源代码编译编译解释/编译成OPCODE编译Framework.NetFrameworkStruts/EJB/Webwork2/Tapstry/JSFZendFramework/CakePHP/ThinkPHP/CacheEhCache/OSCache/JBossCacheMemcachedTTCDBSQLServer/AccessOracleMySQL/PostgreSQL/Oracle/SQLiteMySQLPHPInternetDomains20M15M10M5MRasmusLerdorfIntroducesPHP/FIZeevSuraski,AndiGutmansdevelopPHP3PHP4Released•1MInternetdomains•ZendEngine•ZendFoundedYahoo!StandardizesonPHPPHP5.0•XML,SOAP,OOPIBM,OracleEndorsePHP1995199719992000200220042005PHP的发展历程和使用PHP的网站数量图示PHP:PHP发展历程PHP:填补了企业WEB应用的需求Simple,butRigidPowerful,butComplexPortalFrameworksJava/J2EEApplicationFrameworkPHPFillstheGap:BalancingPower,Flexibility,SimplicityService-OrientedArchitecture(SOA)GapPHP:全球使用PHP的网站PHP:运行环境关于PHP的运行环境,主要有以下五种WebServer,包括Apache、IIS、Lighttpd、Zeus、NginxApacheApache2.x版本下提供了Prefork模式和Worker模式,鉴于PHP的第三方扩展函数库很多都是不支持多线程的,所以PHP官方和Zend官方强烈推荐不要使用Worker模式,而是要么继续使用Apache1.3.x,要么使用Apache2.x的Prefork模式在Apache下,可以使用CGI方式、Apache模块方式(mod_php)、FastCGI方式(mod_fastcgi和mod_fcgd)三种方式来运行PHP,其中mod_php最稳定,mod_fcgd性能最高,需要说明的是FastCGI方式运行PHP存在一定风险,经常性会宕掉,无论是mod_fcgd还是mod_fastcgi。目前Linux/FreeBSD/Solaris绝大部分PHP网站使用Apache+Prefork+Mod_PHP方式,包括我们Qzone和QQ会员的所有PHP项目。IISIIS5/6/7下,主要有三种方式:CGI方式(php.exe)、ISAPI方式(Windows下)和FastCGI方式,而Windows下目前Zend和微软联合开发推出的基于IIS的PHPFastCGI加载方式是性能最高的,稳定性也很不错。LighttpdLighttpd下主要使用FastCGI方式(Spaw

1 / 29
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功