用云来扩展PHP将更便利

作为当今时代最为流行的Web应用语言而言,PHP实在太繁琐了,除非你选择云扩展或者NoSQL后台,不然将会是一个很麻烦的过程。

PHP与传统关系型数据库的强大之处在于,它们可以让初级开发者快速找出某些应用的主要特征。但不幸的是,PHP所使用的默认运行环境不但混乱而且难以扩展。

可能也有很多人并不在意PHP的可维护性。他们的PHP应用是抛弃形式的,其负载相当繁重,并且常常并行运行。比如,曾经就有一家公司开发了一款使用甲骨文后台,作为PHP的营销应用。客户可以通过这个应用购买商品,并用“点数”换取某款在线游戏的一些功能。这个应用一直运营良好,但当用户数量达到了数百万之后局面就改变了。

事实是,如果你有足够的服务器和充足的数据库服务器,那么不会出现什么问题。但是由于PHP 的Web应用在顶层,关系型数据库无法以出色的费效比(投入产出比)进行扩展,提供优异的读写性能。实践证明,应对这一问题的解决方案是:云与NoSQL的综合运用。云基础设施让我们能够拥有充足的服务器,NoSQL数据库让我们能够更加高效地分享数据。不过在这里,首先让我们看看PHP运行环境如此混乱的根本原因。

  PHP运行环境有多糟糕?

最常见的PHP运行环境是Apache Web Server预派生模式(Prefork),指Web服务器运行一系列独立的子进程,以支持并行请求。当你将这一并行特征与MySQL、PostgreSQL或甲骨文等传统关系型数据库结合在一起后,这样的选择意味着非池化数据库连接,因为数据库连接池需要一个共享的内存空间。

另一方面,原生多线程有一个共享内存空间作为其主进程的一部分。而子进程没有一个共享内存空间,除非你使用一款名为“共享内存”(shared memory)的操作系统。其速度无法与根据索引传递内存相媲美。此外,Apache Web Server的“预派生”模块并不支持使用共享内存。很多时候,PHP有可能与原生多线程共同运行,即员工模式。但是,其严重依赖你使用的模块,以及这些模块是否带有“线程安全”特性。

在使用关系型数据库时,PHP并行模式会对垂直扩展模式生产重要影响。尽管其能够打开数以千计的非共享并行连接,以连接MySQL或Oracle数据库,但是这对大量的并行请求具有负面冲击。典型的PHP应用(实际上任何Web应用),都是由以下逻辑所组成的:

request -> getData -> doStuff -> getMoreData -> doMoreStuff -> WriteData -> sendReponse

在此类代码中,有一个相对长的时间周期,期间应用实际上无法与数据库交互。另一个请求能够“共享”相同的数据库连接,前提是数据库连接能够被汇聚。自从PHP处理模式禁止了这一模式,你只能被迫做出决定:是为请求/响应循环的持续而保持连接,还是每次在应用执行时运行。

但是问题是其取决于打开的套接字连接的性能特点。TCP堆栈被用于防止先前连接生产的孤立数据包干扰新连接。这是保证TCP涵盖IP的一部分。TCP/IP的工作机制是让用户等待重新使用相同的套接字连接。因此,一秒钟内你能够打开的TCP套接字连接的数量受到了限制。摆脱这一限制的方法是,在多请求循环中重新使用连接。但是,PHP并行模式导致多数PHP应用无法利用这样的方式。

在(在Unix/Linux服务器上,以netstat –na类型)运行PHP应用时,如果检查Web服务器或数据库服务器上的活跃连接,你将看到在数据库之间存在大量TIME_WAIT或CLOSE_WAIT状态的连接。如果改为在允许池化连接的运行环境上运行应用,你可以看到处于ESTABLISHED状态的数量(根据数据库连接池规模)。其本质是,由于并行模式的限制,导致PHP应用是一个位于数据库上的负载。

其中的原因是什么呢?Linux最初不支持多线程的,仅支持子进程。Windows NT系的操作系统一直支持多线程,尽管与现代化的Linux原生多线程相比其要笨拙许多。因此,其与Linux相比具有较大的优势。但不幸的是,没有人相信这些由微软资助的研究成果。

为了在关系型数据库中扩展PHP,你需要切分你的数据。这意味着要用合理的方式将数据拆解。这可能意味着位于不同地理位置的客户需要访问不同的关系型数据库。当初正是由于所谓的“简单”和“免费”,你才会选择PHP。但是当选择了PHP后,却将不得不面对大量错综复杂的东西。

云和NoSQL:游戏规则颠覆者

在云计算模式中,如果你能够换一个配备自动分区(autoshard),并能平衡每个节点连接的数据库,那么PHP能够进行完美地扩展。你能够在多个数据库服务器中进行平衡,而不是创建一系列与一台或两台机器相连的非池化连接。

越来越多的Web服务器限制了数据库客户端缺乏连接池化所产生的影响。更多的数据库节点和分区减少了服务器节点的影响。趋势已经非常明显,转向NoSQL和云可以对现有运行环境进行扩展。PHP取得如此成功要归功于其经济性,这一特性可能会促使它在云上取得更大的成功,不用再像以往那样,要对PHP线程安全进行修订。

总的来说,云与NoSQL相结合所产生的优势缓和了这些矛盾,或是让应用可以更容易地被部署。这意味着只要有一个完善的NoSQL方案和一个合理的云部署方案,我们或许能够雇佣离岸的PHP程序员团队,使其转向NoSQL数据库。

时间: 2024-12-06 02:46:04

用云来扩展PHP将更便利的相关文章

【大数据干货】阿里云数加让企业更专注于业务,助力东润环能高效利用大数据资源

免费开通大数据服务:https://www.aliyun.com/product/odps 为了摸索出一套真正适合中国国情的新能源数据应用服务方案,云计算和大数据技术成为了东润环能创新的重要手段.而经过了各方面测试和挑选,东润环能最终选择了阿里云作为自己的合作伙伴.而让东润环能选择阿里云的原因,除了阿里云强大的云平台能力之外,还有阿里云数加MaxCompute的全方位服务能力及其稳定安全的表现. 关于东润环能 北京东润环能科技股份有限公司(以下简称"东润环能")是一家从事新能源电力领域

云存储让海量数据产生更大价值

企业数据急剧膨胀,海量存储挑战愈加严峻.对于各类行业的用户而言,爆炸性增长的海量数据正如潮水般地冲击着他们的存储系统.同时,各行业对于数据的安全性要求也越来越高.特别是视频监控.高性能计算等行业,不仅对存储系统的容量.可靠性需求日益提高,而且对于传输带宽也提出了更高的要求. 面对不断增长的数据,传统的存储架构由于扩展性较差,当用户容量及性能需求增加时,只能一味地添加高端存储设备.长此以往,存储环境就会变得日益复杂,管理和运营成本更高,并造成了过高的能源消耗.同时,过于复杂的存储架构和备份方式也很

“云存储网关”——让云存储应用变得更简单

通过本文,你能够了解到:"云存储网关"能够帮助用户更简便地将他们的应用迁移到云存储服务平台和云存储系统上.通过网关,云存储系统看起来跟传统的存储应用一样,可以模拟成NAS文件服务器.块存储阵列.智能备份目标端.甚至是应用本身的一个扩展部分.你还将了解到相关厂商在其云存储网关产品中为用户提供的一些具有高附加值的技术特性. 云存储上最主要的应用是数据的长期归档,以及低成本保存非重要数据.因此,无论是共有云还是私有云,正逐渐演变成企业IT框架的一个部分.然而,传统的应用程序有可能无法直接访问

4种设置方法让Win7旗舰版查看更便利

选用高对比度主题 Win7旗舰版有炫酷的画面效果,新颖独特的新功能,对于Win7旗舰版用户来说,自然是先熟悉Win7旗舰版新功能用法,让自己的Win7旗舰版更个性,更便于自己使用.今天,我们要介绍的是让Win7旗舰版查看更便利的设置方法. 控制面板 具体设置方法:在控制面板,点击"轻松访问"选项中"优化视频显示",进入"使计算机更易于查看"页面进行相应设置. 优化视频显示 方法一:选用高对比度主题,可以使用按左Alt+左Shift+PrintSc

让Windows7查看更便利四种设置方法

  Windows7是微软新一代操作系统,随着其普及率的提升,Windows7用户也逐渐增多.Windows7有炫酷的画面效果,新颖独特的新功能,对于Windows7用户来说,自然是先熟悉Windows7新功能用法,让自己的Windows7更个性,更便于自己使用.今天,我们要介绍的是让Windows7系统查看更便利的设置方法. 具体设置方法:在控制面板,点击"轻松访问"选项中"优化视频显示",进入"使计算机更易于查看"页面进行相应设置. 1.选用

金融安全资讯精选 2017年第八期:Equifax数据泄露事件本周五个进展,企业用户如何使用SOC 2 报告来评估CSP安全性,Alert Logic发布云安全报告:云上发生安全事件数更少

   [金融安全动态] Equifax数据泄露事件本周五个进展.点击查看原文 点评:上周我们提到,Equifax泄露的信息包括用户社会安全码.驾照信息.生日信息.信用卡数据等.据SEC(U.S. Securities and Exchange Commission)的文件,三位Euifax董事已经售出了"一小部分"所持股票.和Equifax可能受到的处罚(链接).   从上周三到今天,Equifax事件有5个新披露的进展.   首先,CIO辞职.Equifax首席安全官员Susan M

北京政务微博周榜 首都机场免费无线网络更便利

此次排行榜以北京微博发布厅70家http://www.aliyun.com/zixun/aggregation/33081.html">政务微博为分析对象,结合一周微博净增量.粉丝净增量.原创率.粉丝活跃率.评论转发率等7项指标,综合得出影响力指数. 热门信息 @交通北京#交通资讯#[首都机场免费无线网络更便利]首都机场在官方发布的手机应用"首都机场出行助手"中新增了"一键上网"功能.只需在自己的手机里下载"首都机场出行助手"应用

云电视打起价格战 “云家电”走下云端更亲民

近年来,随着"云技术"在家电领域的日臻成熟,以彩电为排头兵,空调.冰箱乃至厨房家电相继走上"云端",特别是从今年年初开始,各家电巨头纷纷推出"云家电"新品,让"云"成为了2013最火的关键词."五一"临近,各大彩电企业纷纷推出特价的云电视,表明"云电器"走下云端的步伐正在加速. "云家电"颠覆行业格局 云计算被视为世界第三次IT浪潮,亚马逊.思科.谷歌.IBM.微软等

简单说明如何使用ThinkPHP云引擎扩展

ThinkPHPhttp://www.aliyun.com/zixun/aggregation/18782.html">正式发布了云引擎版本,本篇就简单说明下如何使用云引擎扩展. 概述 ThinkPHP的云引擎扩展是为云平台服务的ThinkPHP扩展.通常所说的云平台是指PaaS类型的云计算平台(服务),他们的名称一般叫App Engine .如新浪的有SAE(Sina App Engine) ,百度有 BAE(Baidu App Engine),等等.可以看到当今云计算已经十分流行,但是