php 擴展開發(fā)閱文對PHP如何通過TARS構(gòu)建高性能RPC框架做經(jīng)驗分享php開發(fā)app微信支付接口開發(fā)教程
2021-12-03
今天(5月19日)php 擴展開發(fā),在上海召開的第六屆中國PHP開發(fā)者大會()上,騰訊開源項目TARS首次發(fā)布了PHP版本。閱文集團高級開發(fā)工程師梁晨(Ted)詢問PHP如何通過TARS 搭建高性能RPC框架的經(jīng)驗分享。
“現(xiàn)有的PHP開發(fā)生態(tài)至少要功能齊全、靈活、輕量級、高效?!?梁辰說道。在分享中,他介紹了高性能RPC框架TARS的基本設(shè)計思路,并通過客戶端、二進(jìn)制協(xié)議、服務(wù)器和開發(fā)效率部分,在PHP語言和框架層面分享了TARS解決方案TARS-PHP的設(shè)計。和實現(xiàn)。
在客戶端,TARS-PHP客戶端具有統(tǒng)一配置、一鍵調(diào)用、多網(wǎng)絡(luò)能力等特點。在功能上,它支持自動尋址、主調(diào)用報告、遠(yuǎn)程日志記錄以及同步和協(xié)程等網(wǎng)絡(luò)能力。同時可以根據(jù)實際網(wǎng)絡(luò)收發(fā)情況及時上報耗時、故障率、超時率、服務(wù)器異常等,方便業(yè)務(wù)第一時間發(fā)現(xiàn)和定位問題
在二進(jìn)制協(xié)議方面,TARS-PHP通過獨立的PHP模塊擴展完成了二進(jìn)制協(xié)議的打包和解包,同時兼顧了高性能和穩(wěn)定性兩個方面。通過合理設(shè)計接口并完全用純C語言實現(xiàn)來提高性能。通過引入phpt的擴展標(biāo)準(zhǔn)測試和工具測試,覆蓋了80%以上的測試代碼php 擴展開發(fā),提高了穩(wěn)定性。與原來的純PHP打包解包方式相比,本次擴展打包效率提高了12-16倍,解包效率提高了9-14倍。
在服務(wù)器端,使用 TARS-PHP 服務(wù)器作為底層運行環(huán)境。它只需要簡單的配置,就可以順利使用。此外,TARS-PHP 服務(wù)器通過自動生成的注釋路由請求。開發(fā)者根本不需要關(guān)心,只需要專注于實現(xiàn)自己的業(yè)務(wù)邏輯即可。除了提供基礎(chǔ)類型外微信公眾號開發(fā),還提供了完整的配置文件分析、服務(wù)?;钌蠄蟆⒗『桶l(fā)布配置、特性上報、業(yè)務(wù)代碼打包等系統(tǒng),讓用戶不僅可以實現(xiàn)自己的業(yè)務(wù)邏輯,也有針對性地展開。從測試數(shù)據(jù)來看,空跑的HTTP QPS達(dá)到了23萬。使用協(xié)程后,在混合RPC調(diào)用的情況下,QPS仍然是21,
在開發(fā)效率方面,TARS-PHP 升級了一個全新的工具。通過TARS文件和工具,可以完全實現(xiàn)客戶端和服務(wù)端的代碼生成,兩端通過協(xié)議完全解耦,大大提高了開發(fā)效率。
以閱讀群的實踐為例,介紹TARS-PHP在閱讀中已經(jīng)驗證使用一年多,目前支持十幾個Node HTTP服務(wù),40多個邏輯API層PHP服務(wù)和定時服務(wù),以及100多個后端TCP服務(wù),每天服務(wù)間調(diào)用數(shù)億次,帶來開發(fā)、運維、性能的全面提升。
最后,梁辰介紹了后續(xù)計劃。TARS-PHP 將支持更多的框架、豐富的功能和升級,同時提高穩(wěn)定性。他還號召更多的公司和開發(fā)者加入進(jìn)來,共同建設(shè),讓TARS-PHP越來越好。
梁晨(Ted),閱文集團高級開發(fā)工程師,啟迪網(wǎng)WEB后端架構(gòu)負(fù)責(zé)人。曾就職于騰訊,負(fù)責(zé)公司QQ和QQ公眾號的開發(fā)和優(yōu)化。騰訊TARS開源項目貢獻(xiàn)者小程序開發(fā),騰訊TSF開發(fā)團隊成員,具有豐富的高性能WEB后臺搭建和微服務(wù)治理經(jīng)驗。