首页 腾讯LAMP架构(内部稿件)

腾讯LAMP架构(内部稿件)

举报
开通vip

腾讯LAMP架构(内部稿件)nullnullxizhu 2010年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的缺点和前瞻 参考资料...

腾讯LAMP架构(内部稿件)
nullnullxizhu 2010年3月LAMP 架构 酒店人事架构图下载公司架构图下载企业应用架构模式pdf监理组织架构图免费下载银行管理与it架构pdf 简介目录目录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系统三层体系基于B/S的Web系统三层体系软件开发 C/S or B/S C/S:Client/Server B/S:Browser/Server B/S架构的特点 客户端要求低 可维护性很高 数据安全性高 实时交互性好 B/S架构的三层体系 分层式 设计 领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计 :分散关注、松散耦合、逻辑复用、标准定义 界面表现层 业务逻辑层 数据存储层 LAMP:LAMP是什么?LAMP:LAMP是什么?LAMP是什么? 基于开源产品的Web架构:1998年,Michael Kunze为德国计算机杂志c‘t写了一篇关于Free软件如何成为商业软件替代品的文章时,创建了LAMP这个名词 LAMP由Linux 操作系统、Apache Web服务器、MySQL数据库和PHP(Perl或Python)脚本语言四种技术的开头字母组成 根据PHPChina资料统计在Alexa排名中国前200名的网站中有61%的采用了LAMP架构,包括腾讯、百度、雅虎、新浪、搜狐、Tom等一大批网站 LAMP架构已成为互联网行业的一盏真正的明灯 LAMP的组成体系:SystemLAMP的组成体系:SystemSystem L: Linux,包括但不限于Linux,我们认为可以泛指各种Linux/Unix系统,RedHat、Suse、Debian、Turbo、FreeBSD、Solaris…甚至包括了PS3的Yellow Dog Linux和Apple的Mac OS 10.5 Leopard 我们公司主要使用的系统:Suse Linux和Slackware Linux LAMP的组成体系:ServerLAMP的组成体系:ServerServer A: Apache,一种占有全球72%市场的开源的Web Server,官方网站 http://www.apache.org 最新版本 2.2.8/2.0.63/1.3.41 最近Pingdom的统计表明,Apache仍然主导全美100大网站(Alexa的排名),占据了49%的市场份额 我们公司主要使用自己研发的Web Server,包括Qhttpd、TWS、QZ_Http、httpsrv等,部分业务使用Apache、Lighttpd、TomCat LAMP的组成体系:ServerLAMP的组成体系:ServerServer Web Server软件的使用比例分布LAMP的组成体系:StorageLAMP的组成体系:StorageStorage M: MySQL,一种开源的关系型数据库,被下载上千万次,2008年2月26日为Sun收购。我们公司绝大部分数据库都是使用MySQL M: 可以将M的概念扩展到Memcached: Memcached是一个高性能的分布式的内存对象缓存系统,通过在内存里维护一个统一的巨大的hash表,它能够用来存储各种格式的数据,包括图像、视频、文件以及数据库检索的结果等。 M: 从Memcache扩展到,还有一系列产品,包括MySQL的memcache_engine/memcachedb_engine、MemcacheQ、Sharedance(http://sharedance.pureftpd.org) M: 可以将M的概念再扩展到Table cache:TencentTableCache ,是一个我司互联网系统平台架构组,提供高速数据访问服务的数据库cache serverLAMP的组成体系:Storage :MemcachedLAMP的组成体系:Storage :MemcachedMemcached 由Danga Interactive开发 http://www.danga.com/memcached/ 使用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 :TencentTableCacheLAMP的组成体系:Storage :TencentTableCacheTencentTableCache TencentTableCache:是由腾讯互联网业务系统平台架构部主持开发的基于Table结构进行内存存储、以MYSQL作为最终存储的持久数据层系统,以此作为MYSQL cache组件.其性能卓越超群,数据安全可靠。被广泛应用在包括Qzone平台,校友平台等项目上。 该软件使用epoll来管理网络连接。这时当前效率最高的事件通知机制,在大连接情况下尤其能够发挥威力。 该软件架构设计中,后端数据处理模块是独立的进程(helper进程),这些进程负责存取数据,由watchdog进程来进行监控,可以通过插件支持多种数据源(DB、文件、网络数据源等)。。 TTC 3.0的内存分配算法采用glibc的ptmalloc算法。TTC在ptmalloc基础上稍作修改,譬如内存只在共享内存块内部分配,不会额外mmap;内部只能用偏移量而不是指针等。 该软件使用异步处理机制,多状态的task,Task处理模型就像有穷状态机,不需要大量的进程同步等待回应,所以降低了在进程/线程上下文切换上的开销。LAMP的组成体系:ScriptLAMP的组成体系:ScriptScript P: PHP,也可以泛指PHP、Perl、Python等解释型脚本语言。截至2008年1月全球有33.24%的网站使用PHP,据统计在Alexa排名中国TOP200的网站中,使用PHP的网站有121个,占60%。在按照行业分类的网站统计中,25个行业的每个行业前10名,共计250个网站中,有102个使用PHP技术,占40% Apache平台上使用的语言比例分布null主流语言增长速度比较LAMP的组成体系:Script经典LAMP网站架构分析经典LAMP网站架构分析几种网站架构的比较几种网站架构的比较null1995199719992000200220042005PHP的发展历程和使用PHP的网站数量图示PHP:PHP发展历程PHP: 填补了企业WEB应用的需求PHP: 填补了企业WEB应用的需求Simple, but RigidPowerful, but Complex Portal FrameworksJava/J2EE Application FrameworkService-Oriented Architecture (SOA)GapPHP: 全球使用PHP的网站PHP: 全球使用PHP的网站PHP: 运行环境PHP: 运行环境关于PHP的运行环境,主要有以下五种Web Server,包括Apache、IIS、Lighttpd、Zeus、Nginx Apache Apache 2.x版本下提供了Prefork模式和Worker模式,鉴于PHP的第三方扩展函数库很多都是不支持多线程的,所以PHP官方和Zend官方强烈推荐不要使用Worker模式,而是要么继续使用Apache 1.3.x,要么使用Apache 2.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项目。nullIIS IIS 5/6/7下,主要有三种方式:CGI方式(php.exe)、ISAPI方式(Windows下)和FastCGI方式,而Windows下目前Zend和微软联合开发推出的基于IIS的PHP FastCGI加载方式是性能最高的,稳定性也很不错。 Lighttpd Lighttpd下主要使用FastCGI方式(Spawn-FCG)运行PHP,网站部(www.qq.com)一直在使用这个,缺点是稳定性较差,经常挂掉。 Zeus Zeus是商业软件,使用自带的FastCGI方式来运行PHP,性能是所有运行PHP的服务器当中最高的,远超过Apache和Lighttpd,但稳定性还待提升。 Nginx Nginx是一款纯静态服务器,需要通过转发的形式,使用Lighttpd的Spawn-FCG或者PHP Build FastCGI来以FastCGI方式运行PHP,这种方式性能很高但是稳定性较差,目前有很多新的项目采用这一方式,包括新浪的一些新业务和51.com的很多服务器。PHP: 运行环境PHP: 运行环境PHP: 运行环境PHP WEB SERVER 使用PHP 做开发语言,通过底层PHP扩展的支持.直接运行PHP代码的WEB SERVER select /epoll两种接入模型。 提供多worker+监控进程方式.支持,runtimes,动态进程调度等相关机制. Qzone校友,第三方应用项目使用. facebook等项目开发过类型组件.PHP: 加速器PHP: 加速器PHP的加速器: 在Linux下的加速器包括PHP官方的APC、第三方的eAccelerator(基于MMCache)和XCache(以上三款都是免费的)、商业的Zend Platform(基于Zend Perormance Suite / Zend WinEnabler,PHP代码加速和缓存结合了Zend Accelerator和Zend Cache)和ionCube Accelerator。 其中官方的APC稳定性和功能都还不错,目前在Qzone校友等项目中使用,eAccelerator在sina很多项目和QQ会员中使用,Zend Platform在百度。 PHP的加速主要包括: PHP文件的编译,这个过程中把PHP程序中include/require的程序连接进来、常量/宏替换、代码优化合并等等,最后编译成二进制中间码opcode PHP opcode的Cache,这里大部分加速器都可以支持,将 内容 财务内部控制制度的内容财务内部控制制度的内容人员招聘与配置的内容项目成本控制的内容消防安全演练内容 Cache到物理内存,超过限额也会cache到服务器本地文件。 PHP程序动态内容输出的Cache,这个功能仅在Zend Platform里支持,可以单独设置对某个目录/文件的内容输出进行Cache(请求的方式GET/POST等以及Cache时间、扫描文件变更时间都可以设置)PHP: 高级优化PHP: 高级优化PHP的FATMM: 改造了PHP Zend MM 内存管理机制,将小块内存申请调用,变为初始化申请大块内存,在使用时,直接从预先申请的内存里分配空间。大块内存不够时,可动态申请,并动态管理大块内存. 其中需要改造PHP源码,使用补丁方式,替换ZEND API里, _emalloc, _free等函数,改补丁由Facebook开发维护. 目前在Qzone校友等项目中使用。 HipHop for PHP: 实现了将PHP代码转换为高品质C++代码,然后用G++编译成可执行的二进制文件,从而大幅减少服务器CPU和内存消耗 实现了PHP的跨请求持久化对象,将进程内存变为多线程共享内存,极大减少了内存占用。 采用了类似FatMM的机制,避免了频繁的malloc和free,可设置固定大小的set Facebook已经有90%的项目使用,同等流量下Web服务器的CPU消耗减少50%、API服务器的CPU消耗减少60%PHP: 其他高级优化PHP: 其他高级优化PHC PHP Open Source Compile: 2005年爱尔兰Trinity College of Dublin的Edsko de Vries和John Gilbert创立,随后同学Paul Biggar加入 RoadSand PHP Compiler (pcc): 支持将PHP代码编译成独立运行的二进制文件,可以将PHP编译成Fast/CGI形式的Web程序、内嵌web server (MicroServer)形式的离线Web应用、使用PHP-GTK的桌面图形界面应用、以及控制台应用软件 RoadSand Raven (rphp): 功能要点:高度优化、JIT或静态编译原生二进制 (通过LLVM)、PHP 代码分级分析和优化、高级诊断和错误信息、模块化设计、干净简洁的runtime和扩展API、完整的unicode支持、可移植性、高速和安全PHP: 开发环境PHP: 开发环境完善的开发环境:ZendStudio调试编写代码性能分析 语法高亮 先进的代码补全功能 支持Web Services 代码折叠 文档引擎 CVS/SVN 客户端支持 数据库访问支持 快速的定位、解决问题 调试时具备断点、监视点设置,察看输出缓冲数据等功能。 客户端/服务器端双重调试 调试简单 快速定位性能问题 记录每一行、每一个函数和每一个文件所占用的时间。 通过统计分析,找到最为耗时的部分。Supports Windows, Linux & Mac OSXPHP: 生产管理系统PHP: 生产管理系统Web服务器生产管理系统: ZendPlatform扩展性能稳定 实时代码优化 代码加速与预编译 完善的缓存解决 方案 气瓶 现场处置方案 .pdf气瓶 现场处置方案 .doc见习基地管理方案.doc关于群访事件的化解方案建筑工地扬尘治理专项方案下载 下载优化与加速 自带性能测试及分析系统 支持Session数据跨服务器 中心控制台与生产节点相结合的管理模式 事件聚合功能 PHP配置的克隆 基于Web页面的管理平台 实时的监控系统,PHP智能组件 实时的脚本效率与运行性能监控 报告并跟踪实时错误 保存数据现场 (重现错误并保留完整的错误文档) 在线调试 PHP的缺点和前瞻PHP的缺点和前瞻PHP的缺点: 第三方库的多线程支持 Apache多线程模式下运行的稳定性 不支持mmap(目前我们已经实现) 不支持epoll/kqueue(目前我们已经实现) 文件锁机制大并发下有缺陷 面向对象还不够全面(不支持命名空间、方法重载、操作符重载、多重继承) PHP的前瞻: PHP的编译:通过Roadsend PHP Compiler(http://www.roadsend.com)将PHP编译CGI/FastCGI、Server、桌面应用 PHP 6.0:Unicode支持 更完善的多线程支持 参考资源参考资源System相关 http://www.suse.com SUSE Linux http://www.slackware.com SlackWare Linux http://www.redhat.com RedHat Linux http://www.debian.com Debian Linux http://www.ubuntu.com Ubuntu Linux http://www.freebsd.org FreeBSD http://www.solaris.com Solaris Server相关 http://www.apache.org/ Apache http://www.nginx.net/ Nginx http://www.lighttpd.net/ Lighttpd http://yaws.hyber.org/ YAWS http://www.iis.net/php IIS for PHP http://www.zeus.com/ Zeus参考资源参考资源PHP相关 http://www.php.net PHP官方网站 http://pecl.php.net PHP的第三方扩展函数库 http://www.zend.com PHP的官方商业支持 http://www.phpdoc.org PHP的注释文档 http://www.phpunit.de PHP的单元测试 http://www.xdebug.org PHP的Debug工具 http://www.eaccelerator.net EA PHP代码加速器 http://xcache.lighttpd.net XCache PHP代码加速器 http://framework.zend.com ZF PHP框架 Memcache相关 http://www.danga.com/memcached/ Memcached http://memcachedb.org/memcacheq/ MemcacheQ http://sourceforge.net/projects/repcached/ Repcached http://pecl.php.net/package/memcache PHP ClientnullThank you!谢谢大家!
本文档为【腾讯LAMP架构(内部稿件)】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_011494
暂无简介~
格式:ppt
大小:888KB
软件:PowerPoint
页数:0
分类:互联网
上传时间:2012-04-07
浏览量:35