国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

RPC核心原理(整體架構(gòu)/調(diào)用過程)

這篇具有很好參考價值的文章主要介紹了RPC核心原理(整體架構(gòu)/調(diào)用過程)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

RPC核心原理(整體架構(gòu)/調(diào)用過程)
Server: Provider ,暴露服務(wù),服務(wù)提供方
Client: Consumer ,服務(wù)消費(fèi),調(diào)用遠(yuǎn)程服務(wù)
Registry:服務(wù)注冊與發(fā)現(xiàn)

RPC的調(diào)用過程如下:

第一步:server會將他需要暴露的服務(wù)以及他的地址信息注冊到Registry這一注冊中心。

第二步:client通過注冊中心一只關(guān)注它所需要的服務(wù)在哪里,如果此時server的地址發(fā)生改變,server會再次注冊入Registry,然后Resgistry會通知給RPC client。

現(xiàn)在client已經(jīng)有了server的地址以及它暴露服務(wù)的信息,就可以做最后一步調(diào)用了(即3 call 步)。

其實(shí)在這里,注冊中心并不是必要的組件,client可以把服務(wù)端的信息直接寫死進(jìn)client,然后直接去調(diào)用rpc server,實(shí)則可以發(fā)現(xiàn)3 call這一步才是rpc調(diào)用最關(guān)鍵的一步?。?/p>

調(diào)用(call)

RPC核心原理(整體架構(gòu)/調(diào)用過程)

1.首先是client要去調(diào)用client stub(存根)這個接口里面的方法,這時候這個接口的實(shí)現(xiàn)在遠(yuǎn)程,所以需要sockets網(wǎng)絡(luò)傳輸,才能達(dá)到調(diào)用(即通過sockets建立連接,傳輸數(shù)據(jù)),在通過sockets進(jìn)行傳輸之前,需要第2步的序列化(把傳輸?shù)膶ο筠D(zhuǎn)成可傳輸?shù)亩M(jìn)制數(shù)據(jù))。

2.假設(shè)此時server的sockets拿到了數(shù)據(jù),需要第4步的反序列化(將拿到的二進(jìn)制數(shù)據(jù)反序列化為對象),在這個對象中包含了這個客戶端要調(diào)用的服務(wù)端的信息(像它調(diào)用的是那個接口,也即它調(diào)用的是哪個存根,接口里面的什么方法方法里面參數(shù)的類型,以及返回值的類型等),之后server去找到這個接口的具體實(shí)現(xiàn)類的對象。通常這個對象為了性能考慮,一般會做成單例模式

3.這個server stub找到這個對象之后會通過反射來調(diào)用這個方法,方法調(diào)用完成后可以拿到計(jì)算的結(jié)果,拿到結(jié)果后又通過第7步的序列化成二進(jìn)制,然后通過網(wǎng)絡(luò)傳輸8響應(yīng)給client,client拿到這個數(shù)據(jù)之后也會通過9將其序列化為對象,然后得到結(jié)果–第10步。那么本次調(diào)用結(jié)束

調(diào)用關(guān)鍵點(diǎn):文章來源地址http://www.zghlxwxcb.cn/news/detail-486860.html

  • 一定要的網(wǎng)絡(luò)模塊(用于網(wǎng)絡(luò)傳輸
  • 序列化模塊(對象與二進(jìn)制數(shù)據(jù)之間的互轉(zhuǎn)
  • client 端怎么就通過調(diào)用一個接口就調(diào)用到遠(yuǎn)程方法呢?其實(shí)他內(nèi)部有一個存根代理對象,而這個網(wǎng)絡(luò)的交互,序列化操作都是由這個代理對象來完成的)
  • server端肯定需要一個對服務(wù)進(jìn)行管理的組件,里面完成了服務(wù)的查找,服務(wù)的反射調(diào)用等

到了這里,關(guān)于RPC核心原理(整體架構(gòu)/調(diào)用過程)的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 【W(wǎng)indows】RPC調(diào)用過程實(shí)例詳解

    【W(wǎng)indows】RPC調(diào)用過程實(shí)例詳解

    概述:windows 創(chuàng)建 RPC調(diào)用過程實(shí)例詳解 參考文章:Remote procedure call (RPC)(遠(yuǎn)程過程調(diào)用 (RPC)) - Win32 apps | Microsoft Learn 定義接口的第一步是使用 uuidgen 實(shí)用工具生成通用唯一標(biāo)識符(UUID)。UUID使客戶端和服務(wù)端能夠相互識別。該工具包含在阿莊平臺軟件開發(fā)工具包中(SDK)

    2024年02月07日
    瀏覽(40)
  • RPC核心原理詳解

    RPC核心原理詳解

    RPC的全稱是Remote Procedure Call,即遠(yuǎn)程過程調(diào)用。簡單解讀字面上的意思,遠(yuǎn)程肯定是指要跨機(jī)器而非本機(jī),所以需要用到網(wǎng)絡(luò)編程才能實(shí)現(xiàn),但是不是只要通過網(wǎng)絡(luò)通信訪問到另一臺機(jī)器的應(yīng)用程序,就可以稱之為RPC調(diào)用了?顯然并不夠。 我理解的RPC是幫助我們屏蔽網(wǎng)絡(luò)編程

    2024年02月11日
    瀏覽(18)
  • RPC:Remote Procedure Call 遠(yuǎn)程過程調(diào)用

    目前,對于一個完整的應(yīng)用來說,通常包含了若干支持不同功能的服務(wù),亦或者是函數(shù),這些服務(wù)之間往往可能需要互相調(diào)用,使用已經(jīng)實(shí)現(xiàn)的服務(wù)功能,而不是需要在每個服務(wù)進(jìn)程中再去重復(fù)實(shí)現(xiàn)已經(jīng)有的功能。 這不僅對于開發(fā)者來說是一種比較合理的設(shè)計(jì)方式,對于服務(wù)

    2024年01月19日
    瀏覽(25)
  • 【C++】開源:grpc遠(yuǎn)程過程調(diào)用(RPC)配置與使用

    【C++】開源:grpc遠(yuǎn)程過程調(diào)用(RPC)配置與使用

    ?? ★,° :.☆( ̄▽ ̄)/$: .°★ ?? 這篇文章主要介紹grpc遠(yuǎn)程過程調(diào)用(RPC)配置與使用。 無專精則不能成,無涉獵則不能通。?!簡⒊?歡迎來到我的博客,一起學(xué)習(xí),共同進(jìn)步。 喜歡的朋友可以關(guān)注一下,下次更新不迷路?? 項(xiàng)目Github地址: https://github.com/grpc/grpc 官網(wǎng)

    2024年02月15日
    瀏覽(27)
  • 應(yīng)用架構(gòu)演變過程、rpc及Dubbo簡介

    ????????單一應(yīng)用架構(gòu) - 垂直應(yīng)用架構(gòu) - 分布式服務(wù)架構(gòu)?- 微服務(wù)架構(gòu)。 單一應(yīng)用架構(gòu) ????????當(dāng)網(wǎng)站流量很小時,只需一個應(yīng)用,將所有功能都部署在一起,以減少部署節(jié)點(diǎn)和成本。 此時,用于簡化增刪改查工作量的 數(shù)據(jù)訪問框架(ORM) 是關(guān)鍵。 ????????缺點(diǎn):

    2024年02月02日
    瀏覽(22)
  • 【Go】四、rpc跨語言編程基礎(chǔ)與rpc的調(diào)用基礎(chǔ)原理

    早期 Go 語言不使用 go module 進(jìn)行包管理,而是使用 go path 進(jìn)行包管理,這種管理方式十分老舊,兩者最顯著的區(qū)別就是:Go Path 創(chuàng)建之后沒有 go.mod 文件被創(chuàng)建出來,而 go module 模式會創(chuàng)建出一個 go.mod 文件用于管理包信息 現(xiàn)在就是:盡量使用 Go Modules 模式 另外,我們在引入包

    2024年02月19日
    瀏覽(23)
  • 聊聊分布式架構(gòu)04——RPC通信原理

    聊聊分布式架構(gòu)04——RPC通信原理

    目錄 RPC通信的基本原理 RPC結(jié)構(gòu) 手?jǐn)]簡陋版RPC 知識點(diǎn)梳理 1.Socket套接字通信機(jī)制 2.通信過程的序列化與反序列化 3.動態(tài)代理 4.反射 思維流程梳理 碼起來 服務(wù)端時序圖 服務(wù)端—Api與Provider模塊 客戶端時序圖 RPC通信的基本原理 RPC(Remote Procedure Call)是一種遠(yuǎn)程過程調(diào)用協(xié)議,

    2024年02月07日
    瀏覽(23)
  • kafka發(fā)布訂閱原理,Java項(xiàng)目開發(fā)如何設(shè)計(jì)整體架構(gòu)

    kafka發(fā)布訂閱原理,Java項(xiàng)目開發(fā)如何設(shè)計(jì)整體架構(gòu)

    源碼閱讀,最核心有三點(diǎn):技術(shù)基礎(chǔ)+強(qiáng)烈的求知欲+耐心。 1.1 設(shè)計(jì)模式(45設(shè)計(jì)模式:介紹+優(yōu)缺點(diǎn)+應(yīng)用實(shí)例+源代碼+解決問題) 1.2 Spring復(fù)習(xí)大綱:依賴注入Ioc+Beans+注解+數(shù)據(jù)訪問+AOP+MVC等 1.3 Spring全家桶筆記:Spring+Spring Boot+Spring Cloud+Spring MVC 面試題(含解析)+學(xué)習(xí)書籍+學(xué)習(xí)

    2024年03月12日
    瀏覽(30)
  • docker 的整體架構(gòu)及各模塊組件 《深入docker底層原理》

    docker 的整體架構(gòu)及各模塊組件 《深入docker底層原理》

    Docker 是一個 C/S 模式的架構(gòu),后端是一個松耦合架構(gòu),模塊各司其職。 1、用戶是使用 Docker Client 與 Docker Daemon 建立通信,并發(fā)送請求給后者。 2、Docker Daemon 作為 Docker 架構(gòu)中的主體部分,首先提供 Docker Server 的功能使其可以接受 Docker Client 的請求。 3、Docker Engine 執(zhí)行 Docke

    2024年02月12日
    瀏覽(18)
  • 安卓架構(gòu)核心Handler原理解析

    安卓架構(gòu)核心Handler原理解析

    當(dāng)使用 handler 去發(fā)送一個消息的時候,查看調(diào)用棧,發(fā)現(xiàn)最終會調(diào)用到 MessageQueue.equeueMessage ,那么說既然是個 queue 肯定就有增和刪, equeueMessage 就對應(yīng)它的增,再看看是誰在調(diào)用 MessageQueue 。 不妨猜想一下,既然平常寫這個 handler 都在主線程,而且主線程的入口就在 main ,

    2023年04月09日
    瀏覽(26)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包