<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                RPC 是一種技術思想而非一種規范或協議,常見 RPC 技術和框架有: * 應用級的服務框架:阿里的 Dubbo/Dubbox、Google gRPC、Spring Boot/Spring Cloud。 * 遠程通信協議:RMI、Socket、SOAP(HTTP XML)、REST(HTTP JSON)。 * 通信框架:MINA 和 Netty。 目前流行的開源 RPC 框架還是比較多的,有阿里巴巴的 Dubbo、Facebook 的 Thrift、Google 的 gRPC、Twitter 的 Finagle 等。 下面重點介紹三種: * gRPC:是 Google 公布的開源軟件,基于\*\*\*的 HTTP 2.0 協議,并支持常見的眾多編程語言。RPC 框架是基于 HTTP 協議實現的,底層使用到了 Netty 框架的支持。 * Thrift:是 Facebook 的開源 RPC 框架,主要是一個跨語言的服務開發框架。 用戶只要在其之上進行二次開發就行,應用對于底層的 RPC 通訊等都是透明的。不過這個對于用戶來說需要學習特定領域語言這個特性,還是有一定成本的。 * Dubbo:是阿里集團開源的一個極為出名的 RPC 框架,在很多互聯網公司和企業應用中廣泛使用。協議和序列化框架都可以插拔是極其鮮明的特色。 **完整的 RPC 框架** ![](https://img.kancloud.cn/70/0e/700e3e38ee4e15683bae962d26281159_651x434.png) 在一個典型 RPC 的使用場景中,包含了服務發現、負載、容錯、網絡傳輸、序列化等組件,其中“RPC 協議”就指明了程序如何進行網絡傳輸和序列化 如下是 Dubbo 的設計架構圖,分層清晰,功能復雜: ![](https://img.kancloud.cn/c1/88/c18846e4252d3dbd3ec42195cd2a9ffb_600x449.png) **RPC 核心功能** RPC 的核心功能是指實現一個 RPC 最重要的功能模塊,就是上圖中的”RPC 協議”部分: ![](https://img.kancloud.cn/ee/a7/eea72921b086dd73f08c727cecee2e39_604x179.png) 一個 RPC 的核心功能主要有 5 個部分組成,分別是:客戶端、客戶端 Stub、網絡傳輸模塊、服務端 Stub、服務端等。 ![](https://img.kancloud.cn/b6/0f/b60fc650e6ee7ed0c314ec07828b4c72_600x358.png) 下面分別介紹核心 RPC 框架的重要組成: * 客戶端(Client):服務調用方。 * 客戶端存根(Client Stub):存放服務端地址信息,將客戶端的請求參數數據信息打包成網絡消息,再通過網絡傳輸發送給服務端。 * 服務端存根(Server Stub):接收客戶端發送過來的請求消息并進行解包,然后再調用本地服務進行處理。 * 服務端(Server):服務的真正提供者。 * Network Service:底層傳輸,可以是 TCP 或 HTTP https://developer.51cto.com/art/201906/597963.htm
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看