<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>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                [TOC] ## **1.RPC介紹** RPC(Remote Procedure Call),即遠程過程調用。 RPC是一種服務器-客戶端(Client/Server)模式,經典實現是一個通過發送請求-接受回應進行信息交互的系統。 RPC(遠程過程調用)對應的是本地過程調用。 ## **2.本地過程調用** ~~~ package main import "fmt" func add(x, y int) int { return x + y } func main() { a := 10 b := 20 ret := add(a, b) fmt.Println(ret) } ~~~ 本地調用`add`函數的執行過程,可以理解為以下四步: 1. 將變量a和b的值分別壓入堆棧上 2. 執行add函數,從堆棧中獲取a和b的值,并將它們分配給x和y 3. 計算x+y的值并將其保存到堆棧中 4. 退出add函數并將x+y的值賦給ret ## **3.RPC調用** 本地過程調用發生在同一進程中,定義函數和調用函數的代碼共享同一個內存空間,所以調用能夠正常執行。 但是無法在另一個程序上調用add函數,因為兩個程序的內存空間是相互隔離的。 RPC就是解決類似遠程、跨內存空間、函數/方法調用的。 gRPC分為三種類型 * Server-side streaming RPC:服務器端流式 RPC * Client-side streaming RPC:客戶端流式 RPC * Bidirectional streaming RPC:雙向流式 RPC Simple RPC的缺點: 數據包過大造成的瞬時壓力 接收數據包時,需要所有數據包都接受成功且正確后,才能夠回調響應,進行業務處理(無法客戶端邊發送,服務端邊處理)
                  <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>

                              哎呀哎呀视频在线观看