PHP開發(fā)者:你GLAMMP了嗎?
原創(chuàng)【51CTO綜合報道】網(wǎng)站開發(fā)黃金組合LAMP(Linux+Apache+MySQL+PHP)已經(jīng)流行了好幾年。即LAMP之后,PHP社區(qū)最近開始推廣起GLAMMP組合。這個組合在LAMP之上又加進來一個G和一個M。這新加進來的兩個字母各是什么意思呢?
G——Gearman
Gearman是Brad Fitzpatrick 的一個作品,用Perl寫的任務(wù)調(diào)度程序,提供一個服務(wù)器端和多種語言的客戶端接口,包括 C/Perl/Python/Ruby 等。
gearman可以用在各個方面,最簡單就是在不同語言之間架起一座橋梁。比如你可能希望你的php程序調(diào)用一個c 函數(shù),那么用gearman就可以實現(xiàn)了,當然了實際你可以通過寫一個php擴展來實現(xiàn)同樣的工作,但是比如你要php調(diào)用java,perl,或者python那么,gearman就非常棒了。
gearman另一個應(yīng)用方面是負載分擔,你可以將worker放在不同的服務(wù)器(或者一些列服務(wù)器)上,比如你的php程序需要圖片轉(zhuǎn)換,但是不希望本地服務(wù)器有太多的這樣圖片轉(zhuǎn)換的進程,那么你可以建立一系列服務(wù)器,在上面加載worker處理圖片轉(zhuǎn)換。這樣你的web服務(wù)器將不受圖片轉(zhuǎn)換的影響,同時你得到了負載均衡的功能,因為job server會在請求到來的時候,將這個請求發(fā)給空閑的worker.同樣對于多核的服務(wù)器,你可以在同一機器上創(chuàng)建同樣數(shù)目的worker. 你可能擔心,job server處于一個中心,那么這會是一個單點的瓶頸,如果死了,會怎么樣?對于這樣的情況,你可以運行多個job server。這樣如果一個job server down了,client和worker會自動遷移到另一臺job server上。
M——Memcached
memcached是由Danga Interactive開發(fā)的,高性能的,分布式的內(nèi)存對象緩存系統(tǒng),用于在動態(tài)應(yīng)用中減少數(shù)據(jù)庫負載,提升訪問速度。
PHP社區(qū)的看法是,LAMP組合已經(jīng)越來越不能滿足很多網(wǎng)站的需要,其他工具的介入是必然趨勢。數(shù)據(jù)庫方面,號稱memcached殺手應(yīng)用的Drizzle有可能會替代MySQL。在MySQL被Sun收購的那一年,人們關(guān)心MySQL是否將會繼續(xù)讓LAMP架構(gòu)發(fā)揚光大;而在Sun又被甲骨文收購,MySQL創(chuàng)始人宣布創(chuàng)建開源數(shù)據(jù)庫聯(lián)盟,MySQL即將四分五裂之際,Drizzle是否能夠做為MySQL的延伸,令GLAMMP發(fā)揚光大下去呢?
不過我也許說錯了,這樣的話,GLAMMP大概應(yīng)該改名叫做GLAMPD才是。
【編輯推薦】