<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之旅 廣告
                ##Remote procedure call 在第二節,我們學習了怎么使用Work Queues 來分發耗時任務給多個Workder。 但是如果我們需要在遠程電腦運行一個 function,我們應該怎么獲得result。這種模式通常被稱為遠程過程調用或RPC。 在這一節,我們會使用RabbitMQ來創建一個RPC system:一個client和一個RPC Server。 ##Client interface 為了闡明RPC service 是怎么使用的,我們會創建一個簡單的client類,它會暴露一個方法,名字叫`call`,它會發送一個RPC請求并且阻塞程序,直到answer被接受。 ``` var rpcClient=new RPCClient(); Console.WriteLine(" [x] Requesting fib(30)"); var response=rpcClient.Call("30"); Console.WriteLine(" [.] Got {0}",response); rpcClient.Close(); ``` **A note on RPC** 盡管RPC 是一種很常見的模式,但是它是有爭議的。主要問題是:程序不知道函數調用是本地還是一個緩慢的RPC。 ##Callback queue 通常通過該RabbitMQ 實現RPC是很簡單的。一個Client發送一個請求信息,一個Server返回響應信息。為了接收這個反饋信息,我們應該發送請求時包含一個callback queue地址。 ``` var corrId = Guid.NewGuid().ToString(); var props = channel.CreateBasicProperties(); props.ReplyTo = replyQueueName; props.CorrelationId = corrId; var messageBytes = Encoding.UTF8.GetBytes(message); channel.BasicPublish(exchange: "", routingKey: "rpc_queue", basicProperties: props, body: messageBytes); // ... then code to read a response message from the callback_queue ... ```
                  <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>

                              哎呀哎呀视频在线观看