无码视频在线观看,99人妻,国产午夜视频,久久久久国产一级毛片高清版新婚

  • 始創(chuàng)于2000年 股票代碼:831685
    咨詢熱線:0371-60135900 注冊有禮 登錄
    • 掛牌上市企業(yè)
    • 60秒人工響應
    • 99.99%連通率
    • 7*24h人工
    • 故障100倍補償
    全部產(chǎn)品
    您的位置: 網(wǎng)站首頁 > 幫助中心>文章內(nèi)容

    用云和NoSQL擴展PHP應用

    發(fā)布時間:  2012/8/29 17:40:54

    作為最流行的Web應用語言,PHP正在被繁重的負載所壓垮,除非你選擇云擴展和NoSQL后臺。

    PHP和傳統(tǒng)關系型數(shù)據(jù)庫的強大之處在于,它們能夠讓初級開發(fā)者快速找出應用的主要特征。但不幸的是,PHP所使用的默認運行環(huán)境混亂并且無法擴展。

    可能有很多人并不在意PHP的可維護性。他們的PHP應用是拋棄型的,其負載繁重,并且常常并行運行。例如,曾經(jīng)有一家公司開發(fā)了一款使用甲骨文后臺的PHP營銷應用?蛻艨梢酝ㄟ^這個應用購買商品,并用“點數(shù)”換取某款在線游戲的一些功能。這個應用一直運營良好,但當用戶數(shù)量達到了數(shù)百萬之后局面就改變了。

    事實是,如果你有足夠的服務器和充足的數(shù)據(jù)庫服務器,那么不會出現(xiàn)什么問題。但是由于PHP 的Web應用在頂層,關系型數(shù)據(jù)庫無法以出色的費效比(投入產(chǎn)出比)進行擴展,提供優(yōu)異的讀寫性能。實踐證明,應對這一問題的解決方案是:云與NoSQL的綜合運用。云基礎設施讓我們能夠擁有充足的服務器,NoSQL數(shù)據(jù)庫讓我們能夠更加高效地分享數(shù)據(jù)。不過在這里,首先讓我們看看PHP運行環(huán)境如此混亂的根本原因。

      PHP運行環(huán)境有多糟糕?

    最常見的PHP運行環(huán)境是Apache Web Server預派生模式(Prefork),指Web服務器運行一系列獨立的子進程,以支持并行請求。當你將這一并行特征與MySQL、PostgreSQL或甲骨文等傳統(tǒng)關系型數(shù)據(jù)庫結(jié)合在一起后,這樣的選擇意味著非池化數(shù)據(jù)庫連接,因為數(shù)據(jù)庫連接池需要一個共享的內(nèi)存空間。

    另一方面,原生多線程有一個共享內(nèi)存空間作為其主進程的一部分。而子進程沒有一個共享內(nèi)存空間,除非你使用一款名為“共享內(nèi)存”(shared memory)的操作系統(tǒng)。其速度無法與根據(jù)索引傳遞內(nèi)存相媲美。此外,Apache Web Server的“預派生”模塊并不支持使用共享內(nèi)存。很多時候,PHP有可能與原生多線程共同運行,即員工模式。但是,其嚴重依賴你使用的模塊,以及這些模塊是否帶有“線程安全”特性。

     

     

    在使用關系型數(shù)據(jù)庫時,PHP并行模式會對垂直擴展模式生產(chǎn)重要影響。盡管其能夠打開數(shù)以千計的非共享并行連接,以連接MySQL或Oracle數(shù)據(jù)庫,但是這對大量的并行請求具有負面沖擊。典型的PHP應用(實際上任何Web應用),都是由以下邏輯所組成的:

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

    在此類代碼中,有一個相對長的時間周期,期間應用實際上無法與數(shù)據(jù)庫交互。另一個請求能夠“共享”相同的數(shù)據(jù)庫連接,前提是數(shù)據(jù)庫連接能夠被匯聚。自從PHP處理模式禁止了這一模式,你只能被迫做出決定:是為請求/響應循環(huán)的持續(xù)而保持連接,還是每次在應用執(zhí)行時運行。

    但是問題是其取決于打開的套接字連接的性能特點。TCP堆棧被用于防止先前連接生產(chǎn)的孤立數(shù)據(jù)包干擾新連接。這是保證TCP涵蓋IP的一部分。TCP/IP的工作機制是讓用戶等待重新使用相同的套接字連接。因此,一秒鐘內(nèi)你能夠打開的TCP套接字連接的數(shù)量受到了限制。擺脫這一限制的方法是,在多請求循環(huán)中重新使用連接。但是,PHP并行模式導致多數(shù)PHP應用無法利用這樣的方式。

    在(在Unix/Linux服務器上,以netstat –na類型)運行PHP應用時,如果檢查Web服務器或數(shù)據(jù)庫服務器上的活躍連接,你將看到在數(shù)據(jù)庫之間存在大量TIME_WAIT或CLOSE_WAIT狀態(tài)的連接。如果改為在允許池化連接的運行環(huán)境上運行應用,你可以看到處于ESTABLISHED狀態(tài)的數(shù)量(根據(jù)數(shù)據(jù)庫連接池規(guī)模)。其本質(zhì)是,由于并行模式的限制,導致PHP應用是一個位于數(shù)據(jù)庫上的負載。

    其中的原因是什么呢?Linux最初不支持多線程的,僅支持子進程。Windows NT系的操作系統(tǒng)一直支持多線程,盡管與現(xiàn)代化的Linux原生多線程相比其要笨拙許多。因此,其與Linux相比具有較大的優(yōu)勢。但不幸的是,沒有人相信這些由微軟資助的研究成果。

    為了在關系型數(shù)據(jù)庫中擴展PHP,你需要切分你的數(shù)據(jù)。這意味著要用合理的方式將數(shù)據(jù)拆解。這可能意味著位于不同地理位置的客戶需要訪問不同的關系型數(shù)據(jù)庫。當初正是由于所謂的“簡單”和“免費”,你才會選擇PHP。但是當選擇了PHP后,卻將不得不面對大量錯綜復雜的東西。

    云和NoSQL:游戲規(guī)則顛覆者

    在云計算模式中,如果你能夠換一個配備自動分區(qū)(autoshard),并能平衡每個節(jié)點連接的數(shù)據(jù)庫,那么PHP能夠進行完美地擴展。你能夠在多個數(shù)據(jù)庫服務器中進行平衡,而不是創(chuàng)建一系列與一臺或兩臺機器相連的非池化連接。

    越來越多的Web服務器限制了數(shù)據(jù)庫客戶端缺乏連接池化所產(chǎn)生的影響。更多的數(shù)據(jù)庫節(jié)點和分區(qū)減少了服務器節(jié)點的影響。趨勢已經(jīng)非常明顯,轉(zhuǎn)向NoSQL和云可以對現(xiàn)有運行環(huán)境進行擴展。PHP取得如此成功要歸功于其經(jīng)濟性,這一特性可能會促使它在云上取得更大的成功,不用再像以往那樣,要對PHP線程安全進行修訂。

     

     

    總的來說,云與NoSQL相結(jié)合所產(chǎn)生的優(yōu)勢緩和了這些矛盾,或是讓應用可以更容易地被部署。這意味著只要有一個完善的NoSQL方案和一個合理的云部署方案,我們或許能夠雇傭離岸的PHP程序員團隊,使其轉(zhuǎn)向NoSQL數(shù)據(jù)庫。


    本文出自:億恩科技【mszdt.com】

    服務器租用/服務器托管中國五強!虛擬主機域名注冊頂級提供商!15年品質(zhì)保障!--億恩科技[ENKJ.COM]

  • 您可能在找
  • 億恩北京公司:
  • 經(jīng)營性ICP/ISP證:京B2-20150015
  • 億恩鄭州公司:
  • 經(jīng)營性ICP/ISP/IDC證:豫B1.B2-20060070
  • 億恩南昌公司:
  • 經(jīng)營性ICP/ISP證:贛B2-20080012
  • 服務器/云主機 24小時售后服務電話:0371-60135900
  • 虛擬主機/智能建站 24小時售后服務電話:0371-60135900
  • 專注服務器托管17年
    掃掃關注-微信公眾號
    0371-60135900
    Copyright© 1999-2019 ENKJ All Rights Reserved 億恩科技 版權(quán)所有  地址:鄭州市高新區(qū)翠竹街1號總部企業(yè)基地億恩大廈  法律顧問:河南亞太人律師事務所郝建鋒、杜慧月律師   京公網(wǎng)安備41019702002023號
      1
     
     
     
     

    0371-60135900
    7*24小時客服服務熱線