小編給大家分享一下gRPC服務(wù)端創(chuàng)建流程是怎么樣的,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
我們擁有十多年網(wǎng)頁設(shè)計(jì)和網(wǎng)站建設(shè)經(jīng)驗(yàn),從網(wǎng)站策劃到網(wǎng)站制作,我們的網(wǎng)頁設(shè)計(jì)師為您提供的解決方案。為企業(yè)提供成都做網(wǎng)站、成都網(wǎng)站制作、微信開發(fā)、成都小程序開發(fā)、成都手機(jī)網(wǎng)站制作、H5響應(yīng)式網(wǎng)站、等業(yè)務(wù)。無論您有什么樣的網(wǎng)站設(shè)計(jì)或者設(shè)計(jì)方案要求,我們都將富于創(chuàng)造性的提供專業(yè)設(shè)計(jì)服務(wù)并滿足您的需求。
gRPC 服務(wù)端創(chuàng)建關(guān)鍵流程分析:
NettyServer 實(shí)例創(chuàng)建:
gRPC 服務(wù)端創(chuàng)建,首先需要初始化 NettyServer,它是 gRPC 基于 Netty 4.1 HTTP/2 協(xié)議棧之上封裝的 HTTP/2 服務(wù)端。
NettyServer 實(shí)例由 NettyServerBuilder 的 buildTransportServer 方法構(gòu)建,
NettyServer 構(gòu)建完成之后,監(jiān)聽指定的 Socket 地址,即可實(shí)現(xiàn)基于 HTTP/2 協(xié)議的請求消息接入。
綁定 IDL 定義的服務(wù)接口實(shí)現(xiàn)類:
gRPC 與其它一些 RPC 框架的差異點(diǎn)是服務(wù)接口實(shí)現(xiàn)類的調(diào)用并不是通過動態(tài)代理和反射機(jī)制,而是通過 proto 工具生成代碼,
在服務(wù)端啟動時(shí),將服務(wù)接口實(shí)現(xiàn)類實(shí)例注冊到 gRPC 內(nèi)部的服務(wù)注冊中心上。
請求消息接入之后,可以根據(jù)服務(wù)名和方法名,直接調(diào)用啟動時(shí)注冊的服務(wù)實(shí)例,而不需要通過反射的方式進(jìn)行調(diào)用,性能更優(yōu)。
gRPC 服務(wù)實(shí)例(ServerImpl)構(gòu)建:
例如 Netty 的線程池資源、gRPC 的線程池、內(nèi)部的服務(wù)注冊類(InternalHandlerRegistry)等,
ServerImpl 負(fù)責(zé)整個(gè) gRPC 服務(wù)端消息的調(diào)度和處理,
創(chuàng)建 ServerImpl 實(shí)例過程中,會對服務(wù)端依賴的對象進(jìn)行初始化,
ServerImpl 初始化完成之后,就可以調(diào)用 NettyServer 的 start 方法啟動 HTTP/2 服務(wù)端,接收 gRPC 客戶端的服務(wù)調(diào)用請求。
以上是“gRPC服務(wù)端創(chuàng)建流程是怎么樣的”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!