我建議在 Webman 中集成對(duì) gRPC 服務(wù)的一流支持,這可以顯著增強(qiáng)框架構(gòu)建現(xiàn)代高性能應(yīng)用程序的能力。
gRPC 已迅速成為云原生微服務(wù)架構(gòu)中高效連接服務(wù)的事實(shí)上的標(biāo)準(zhǔn)。 gRPC 強(qiáng)調(diào)高吞吐量、低延遲連接、集成服務(wù)發(fā)現(xiàn)、負(fù)載平衡、身份驗(yàn)證和更小的消息大小,與傳統(tǒng) REST API 相比,可帶來顯著的性能提升。 Netflix、PayPal、Square 等領(lǐng)先科技巨頭正在采用 gRPC。
通過添加 gRPC 集成,Webman 可以讓開發(fā)人員輕松地在服務(wù)之間構(gòu)建極快的內(nèi)部 API。這將使得諸如實(shí)時(shí)數(shù)據(jù)流和聚合之類的用例成為可能,而這些用例很難通過 REST 實(shí)現(xiàn)。 gRPC 工具也廣泛應(yīng)用于幾乎所有語言生態(tài)系統(tǒng),降低了采用的障礙。
集成這些功能可以將 Webman 打造成一個(gè)專為云原生開發(fā)量身定制的前瞻性框架。它打開了支持尖端用例并減少開發(fā)開銷的大門。
目前沒有實(shí)現(xiàn),GRPC社區(qū)也沒有實(shí)現(xiàn)完整php對(duì)grpc服務(wù)端和客戶端
php可以使用grpc拓展,webman同樣可以使用grpc拓展來開發(fā);
protoc生成php代碼在webman項(xiàng)目的特定區(qū)域,然后進(jìn)行業(yè)務(wù)處理即可;
以上是webman作為grpc-client的方案;
由于webman/workerman及php本身不支持http2,所以想要作為grpc-server來說,需要有相應(yīng)的支持內(nèi)容;
另外,你提到的云原生大概率是golang的天下,php的相關(guān)應(yīng)用主要也是以client的方面涉及的,很少有廠商和企業(yè)會(huì)選擇php來作為云原生的server端。
實(shí)現(xiàn)http2(搜索amphp)和protobuf(php-ext)在php社區(qū)有方案,但都不是完美的,大部分插件或者應(yīng)用都是需要有落地場景和應(yīng)用場景的,這一部分至少在目前的環(huán)境中,沒有給php太多的應(yīng)用落地空間,所以社區(qū)一直沒有好的完整的實(shí)現(xiàn)(這是現(xiàn)狀)。
PHP暫時(shí)沒有做K8S相關(guān)開發(fā)的能力以及容器管理的能力,更多的是后端偏前或者是應(yīng)用層;
另外gRPC并沒有性能很高,它主要是golang的RPC框架;
業(yè)內(nèi)不使用gRPC的話,其實(shí)使用protobuf的也比較多,thrift也比較多,都有,這東西不是銀彈;
主要現(xiàn)在gRPC實(shí)現(xiàn)的語言很多,基本覆蓋了前十的web開發(fā)語言,這樣在既有系統(tǒng)切換或者擴(kuò)展就會(huì)有很多選擇。譬如一個(gè)用gong開發(fā)的核心系統(tǒng),后面業(yè)務(wù)擴(kuò)展,使用webman再來開發(fā)一個(gè)新模塊,如果支持gRPC就會(huì)很快集成。如果webman也提供grpc服務(wù)端,也能讓其他語言開發(fā)的系統(tǒng)很快接入。
謝謝你告訴我你對(duì)進(jìn)一步推進(jìn)這一點(diǎn)的想法。我相信這可以顯著推動(dòng)PHP應(yīng)用程序開發(fā)的現(xiàn)代化,并解鎖以前無法實(shí)現(xiàn)的新用例。我們有機(jī)會(huì)使PHP在云原生開發(fā)中與其他語言媲美,而gRPC是這個(gè)未來的關(guān)鍵組成部分。
我理解在過去,由于PHP的短暫執(zhí)行模型,實(shí)現(xiàn)gRPC服務(wù)器支持是不可行的。然而,隨著最近通過Swoole、PhpStan和ReactPHP實(shí)現(xiàn)長時(shí)間運(yùn)行的PHP進(jìn)程的發(fā)展,我相信現(xiàn)在是重新考慮gRPC功能的時(shí)機(jī)。
正如你所知,在一種語言中啟用完全異步和雙向流的gRPC為構(gòu)建性能出色、彈性極強(qiáng)的系統(tǒng)打開了大門。對(duì)于支撐各種規(guī)模后端的PHP龐大開發(fā)者社區(qū)而言,將其與Java、Go和Python等語言相提并論,可以加速采用云原生微服務(wù)模式。開發(fā)者終于可以構(gòu)建低延遲的API和事件驅(qū)動(dòng)的架構(gòu),而無需使用REST或WebSockets帶來的開銷。
我和許多其他PHP開發(fā)者很樂意在生產(chǎn)應(yīng)用中充分利用并推廣這些功能。
你說的這些php生態(tài)只有swoole,最早Swoole就是你這么想的。
swoole 支持http2協(xié)議也是最方便直接的,原生C++語言容易擴(kuò)展第三庫。