摘要:異步隊(duì)列消費(fèi)者開發(fā)只提供了模式下運(yùn)行控制器方法,并未提供主進(jìn)程多子進(jìn)程的進(jìn)程模型,并未提供多線程處理。多線程異步隊(duì)列服務(wù)只需寫好控制器方法,然后在配置文件中配置下路由命名空間進(jìn)程線程數(shù)量,就可在模式中啟動(dòng)多進(jìn)程多線程模型的異步隊(duì)列處理程序。
最近業(yè)余時(shí)間一直在開發(fā)ExpressPHP的第二個(gè)版本 MixPHP,今天下班想起之前一個(gè)面試官的問(wèn)題:你為什么還要再造一個(gè)輪子呢?仔細(xì)回想,第一個(gè)版本,現(xiàn)在想來(lái)確實(shí) “炫技” 的成份比較多,現(xiàn)在推翻第一版,又重構(gòu)一個(gè)所謂的 “高性能PHP框架” ,這東西又不賺錢,我到底為了啥?其實(shí),寫程序和寫詩(shī)有很多相似之處,同樣需要優(yōu)雅的語(yǔ)法,好作品也同樣想要有更多的人欣賞,感性完了,接下來(lái)理性的分析一下。
國(guó)內(nèi)常用的框架國(guó)內(nèi)較流行的 PHP 框架,參考Lagou等招聘網(wǎng)中的招聘信息與眾多同事口口相傳。
框架 | 特點(diǎn) | 流行度 | 更加適合 |
---|---|---|---|
ThinkPHP | 易上手,文檔友好、過(guò)度封裝 | 超高 | 網(wǎng)頁(yè) |
Yii | 安全性高、規(guī)范、性能稍差 | 高 | 網(wǎng)頁(yè) |
Codeigniter | 簡(jiǎn)單、高效、文檔友好 | 高 | 網(wǎng)頁(yè)&API |
Yaf/Phalcon | C擴(kuò)展,高性能 | 一般 | API |
通常后端開發(fā)有以下這些場(chǎng)景:
網(wǎng)頁(yè)/后臺(tái)管理開發(fā)
API開發(fā)
TCP服務(wù)器開發(fā)
UDP服務(wù)器開發(fā)
異步隊(duì)列消費(fèi)者開發(fā)
定時(shí)任務(wù)開發(fā)
采用多種技術(shù),復(fù)雜度、成本必然更高因?yàn)椴煌瑘?chǎng)景的訴求不同,所以很多公司采用多種框架來(lái)開發(fā),APP的API采用Yaf/Phalcon,后臺(tái)管理采用Yii、ThinkPHP、Codeigniter,TCP/UDP服務(wù)器又采用Java/C++來(lái)寫,一個(gè)后端開發(fā)就需招聘擅長(zhǎng)不同框架不同語(yǔ)言的程序員來(lái)開發(fā)。
現(xiàn)有 MVC 框架的弱項(xiàng)在網(wǎng)頁(yè)/后臺(tái)管理/API開發(fā)方面,流行的各種PHP框架一直都很擅長(zhǎng),可是在控制臺(tái)程序開發(fā)方面:
HTTP/TCP/UDP服務(wù)器開發(fā):還未有流行的PHP框架封裝。
異步隊(duì)列消費(fèi)者開發(fā):只提供了CLI模式下運(yùn)行控制器方法,并未提供主進(jìn)程多子進(jìn)程的進(jìn)程模型,并未提供多線程處理。
定時(shí)任務(wù)開發(fā):還需依賴第三方工具crontab等,PHP框架本身不能實(shí)現(xiàn)。
PHP 框架開發(fā)效率與性能不可兼得Yaf/Phalcon這樣C擴(kuò)展框架,如果開發(fā)業(yè)務(wù)十分復(fù)雜的后臺(tái)與網(wǎng)頁(yè),開發(fā)效率不高,中小企業(yè)開發(fā)效率才是生存王道,而開發(fā)效率高的ThinkPHP、Yii、Codeigniter開發(fā)API性能又差了點(diǎn),當(dāng)然性能可以從架構(gòu)上著手,但是如果高性能與開發(fā)效率可以兼得,豈不更好。
MixPHP 試圖解決這些高性能與開發(fā)效率兼得:參考Yii、ThinkPHP、Codeigniter提高開發(fā)效率的特性,編寫全部面向?qū)ο蟮腗VC框架,使其同時(shí)支持LNMP架構(gòu)與Swoole應(yīng)用服務(wù)器,需要開發(fā)效率時(shí)采用LNMP傳統(tǒng)架構(gòu),需要高性能API時(shí),修改少量代碼,即可切換為Swoole應(yīng)用服務(wù)器,把框架類庫(kù)預(yù)加載至內(nèi)存,數(shù)據(jù)庫(kù)按進(jìn)程長(zhǎng)連接,可達(dá)到Y(jié)af/Phalcon的性能。
多線程異步隊(duì)列服務(wù):只需寫好控制器方法,然后在配置文件中配置下路由命名空間、進(jìn)程、線程數(shù)量,就可在CLI模式中啟動(dòng)多進(jìn)程多線程模型的異步隊(duì)列處理程序。
定時(shí)任務(wù)服務(wù):只需寫好控制器方法,然后配置下路由命名空間、定時(shí)循環(huán)條件,就可在CLI模式中啟動(dòng)動(dòng)態(tài)多進(jìn)程模型的定時(shí)任務(wù)處理程序。
TCP/UDP服務(wù):一步步來(lái),后續(xù)版本再考慮加入。
結(jié)尾許愿:希望以后所有后端開發(fā),如用PHP,就用一個(gè)框架可好?
GitHubPHP是最好的語(yǔ)言
支持的用戶請(qǐng)加個(gè) Star 吧,讓更多人發(fā)現(xiàn) MixPHP。?
https://github.com/mixstart/mixphp
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/26055.html
摘要:如何使用優(yōu)化高并發(fā)場(chǎng)景寫庫(kù)或者耗時(shí)計(jì)算在的接口中使用消息隊(duì)列,把要入庫(kù)的數(shù)據(jù)寫入的類型中。高容錯(cuò)子進(jìn)程異常奔潰時(shí),主進(jìn)程將重建子進(jìn)程。高性能多進(jìn)程運(yùn)行,充分利用多個(gè)并行計(jì)算,性能強(qiáng)勁。 經(jīng)常在群里聽到一些朋友問(wèn):TP 的項(xiàng)目怎么遷移到 mixphp 來(lái)處理高并發(fā),我通常都是回復(fù)需要重寫,可是一個(gè)開發(fā)很久的 TP 項(xiàng)目,代碼量巨大,又怎么可能會(huì)花大量時(shí)間成本來(lái)重寫呢? 那么為何我們不嘗試...
摘要:框架最新源代碼行數(shù)行,因此可以很容易的改造它,成為你們公司的專屬框架。也不同于其他基于的微服務(wù)框架,只聚焦于微服務(wù)治理,定位于開發(fā)的更多領(lǐng)域,覆蓋從初創(chuàng)到億元級(jí)體量的技術(shù)訴求。的授權(quán)全靠用戶自愿購(gòu)買,詳情 MixPHP是什么 MixPHP 是秉承 普及 PHP 常駐內(nèi)存型解決方案,促進(jìn) PHP 往更后端發(fā)展 的理念而創(chuàng)造,采用 Swoole 擴(kuò)展作為底層引擎,圍繞常駐內(nèi)存的方式而設(shè)計(jì),...
摘要:消費(fèi)者開發(fā)本例我們使用的多進(jìn)程開發(fā)工具來(lái)完成這個(gè)需求,通常使用常駐進(jìn)程來(lái)處理隊(duì)列的消費(fèi),所以我們使用的類型,模式。中進(jìn)程負(fù)責(zé)執(zhí)行郵件發(fā)送任務(wù)。此時(shí)終端將打印成功收到測(cè)試郵件官網(wǎng) 注意:這個(gè)是 MixPHP V1 的范例 郵件發(fā)送是很常見的需求,由于發(fā)送郵件的操作一般是比較耗時(shí)的,所以我們一般采用異步處理來(lái)提升用戶體驗(yàn),而異步通常我們使用消息隊(duì)列來(lái)實(shí)現(xiàn)。 傳統(tǒng) MVC 框架由于缺少多進(jìn)程...
摘要:寫基于和開發(fā)的失蹤兒童信息平臺(tái)。團(tuán)圓系統(tǒng)的全稱應(yīng)該是公安部?jī)和й櫺畔⒕o急發(fā)布平臺(tái),在新浪微博上有一個(gè)官方的微博賬號(hào),通過(guò)這個(gè)微博賬號(hào)發(fā)布兒童失蹤信息。 這是我在sf上的第一篇文章。寫基于swoole、Mixphp和CodeIgniter開發(fā)的失蹤兒童信息平臺(tái)。 在2017年的時(shí)候,關(guān)注到有一個(gè)團(tuán)圓系統(tǒng),它是公安部專門為了快速擴(kuò)散失蹤兒童消息的平臺(tái),但是網(wǎng)上并沒(méi)有找到這個(gè)平臺(tái)的地址。當(dāng)...
摘要:注意這個(gè)是的范例是一款基于的常駐內(nèi)存型高性能框架,框架的高性能特點(diǎn)非常適合開發(fā)接口,而且非常接近傳統(tǒng)框架,所以開發(fā)接口時(shí)非常簡(jiǎn)單。下面做一個(gè)開發(fā)接口的簡(jiǎn)單實(shí)例從表,通過(guò)獲取一篇文章。第四步使用測(cè)試,如下接口開發(fā)與測(cè)試完成,是不是很簡(jiǎn)單呀。 注意:這個(gè)是 MixPHP V1 的范例 MixPHP 是一款基于 Swoole 的常駐內(nèi)存型 PHP 高性能框架,框架的高性能特點(diǎn)非常適合開發(fā) A...
閱讀 3136·2021-11-11 16:54
閱讀 2291·2021-09-04 16:48
閱讀 3219·2019-08-29 16:08
閱讀 642·2019-08-29 15:13
閱讀 1344·2019-08-29 15:09
閱讀 2660·2019-08-29 12:45
閱讀 1926·2019-08-29 12:12
閱讀 444·2019-08-26 18:27