AVt天堂网 手机版,亚洲va久久久噜噜噜久久4399,天天综合亚洲色在线精品,亚洲一级Av无码毛片久久精品

當(dāng)前位置:首頁(yè) > 科技  > 軟件

什么是RPC框架?實(shí)現(xiàn)原理呢?與SOA、REST有啥區(qū)別?

來(lái)源: 責(zé)編: 時(shí)間:2024-06-14 17:35:44 143觀(guān)看
導(dǎo)讀面試題1:說(shuō)說(shuō)你對(duì)RPC框架的理解?RPC (Remote Procedure Call)即遠(yuǎn)程過(guò)程調(diào)用,是分布式系統(tǒng)常見(jiàn)的一種通信方法。它允許程序調(diào)用另一個(gè)地址空間(通常是共享網(wǎng)絡(luò)的另一臺(tái)機(jī)器上)的過(guò)程或函數(shù),而不用程序員顯式編碼這個(gè)遠(yuǎn)程調(diào)

面試題1:說(shuō)說(shuō)你對(duì)RPC框架的理解?

RPC (Remote Procedure Call)即遠(yuǎn)程過(guò)程調(diào)用,是分布式系統(tǒng)常見(jiàn)的一種通信方法。它允許程序調(diào)用另一個(gè)地址空間(通常是共享網(wǎng)絡(luò)的另一臺(tái)機(jī)器上)的過(guò)程或函數(shù),而不用程序員顯式編碼這個(gè)遠(yuǎn)程調(diào)用的細(xì)節(jié)。24M28資訊網(wǎng)——每日最新資訊28at.com

除 RPC 之外,常見(jiàn)的多系統(tǒng)數(shù)據(jù)交互方案還有分布式消息隊(duì)列、HTTP 請(qǐng)求調(diào)用、數(shù)據(jù)庫(kù)和分布式緩存等。24M28資訊網(wǎng)——每日最新資訊28at.com

其中 RPC 和 HTTP 調(diào)用是沒(méi)有經(jīng)過(guò)中間件的,它們是端到端系統(tǒng)的直接數(shù)據(jù)交互。24M28資訊網(wǎng)——每日最新資訊28at.com

通俗點(diǎn)說(shuō)

  • RPC就是從一臺(tái)機(jī)器(客戶(hù)端)上通過(guò)參數(shù)傳遞的方式調(diào)用另一臺(tái)機(jī)器(服務(wù)器)上的一個(gè)函數(shù)或方法(可以統(tǒng)稱(chēng)為服務(wù))并得到返回的結(jié)果。
  • RPC會(huì)隱藏底層的通訊細(xì)節(jié)(不需要直接處理Socket通訊或Http通訊)。
  • 客戶(hù)端發(fā)起請(qǐng)求,服務(wù)器返回響應(yīng)(類(lèi)似于Http的工作方式)RPC在使用形式上像調(diào)用本地函數(shù)(或方法)一樣去調(diào)用遠(yuǎn)程的函數(shù)(或方法)。

追問(wèn)1:RPC框架實(shí)現(xiàn)原理是什么樣的

在RPC框架中主要有三個(gè)角色:提供者、消費(fèi)者和注冊(cè)中心。如下圖所示:24M28資訊網(wǎng)——每日最新資訊28at.com

圖片圖片24M28資訊網(wǎng)——每日最新資訊28at.com

  • 提供者: 暴露服務(wù)的服務(wù)提供方。
  • 提供者: 調(diào)用遠(yuǎn)程服務(wù)的服務(wù)消費(fèi)方。
  • 注冊(cè)中心: 服務(wù)注冊(cè)與發(fā)現(xiàn)的注冊(cè)中心。

圖片圖片24M28資訊網(wǎng)——每日最新資訊28at.com

原理圖如上,也就是說(shuō)兩臺(tái)服務(wù)器A,B,一個(gè)應(yīng)用部署在A(yíng)服務(wù)器上,想要調(diào)用B服務(wù)器上應(yīng)用提供的函數(shù)/方法,由于不在一個(gè)內(nèi)存空間,不能直接調(diào)用,需要通過(guò)網(wǎng)絡(luò)來(lái)表達(dá)調(diào)用的語(yǔ)義和傳達(dá)調(diào)用的數(shù)據(jù)。24M28資訊網(wǎng)——每日最新資訊28at.com

比如說(shuō),A服務(wù)器想調(diào)用B服務(wù)器上的一個(gè)方法:Employee getEmployeeByName(String fullName)24M28資訊網(wǎng)——每日最新資訊28at.com

RPC整個(gè)調(diào)用過(guò)程,主要經(jīng)歷如下幾個(gè)步驟:24M28資訊網(wǎng)——每日最新資訊28at.com

1、建立通信24M28資訊網(wǎng)——每日最新資訊28at.com

首先要解決通訊的問(wèn)題:即A機(jī)器想要調(diào)用B機(jī)器,首先得建立起通信連接。24M28資訊網(wǎng)——每日最新資訊28at.com

主要是通過(guò)在客戶(hù)端和服務(wù)器之間建立TCP連接,遠(yuǎn)程過(guò)程調(diào)用的所有交換的數(shù)據(jù)都在這個(gè)連接里傳輸。連接可以是按需連接,調(diào)用結(jié)束后就斷掉,也可以是長(zhǎng)連接,多個(gè)遠(yuǎn)程過(guò)程調(diào)用共享同一個(gè)連接。24M28資訊網(wǎng)——每日最新資訊28at.com

2、服務(wù)尋址24M28資訊網(wǎng)——每日最新資訊28at.com

要解決尋址的問(wèn)題,也就是說(shuō),A服務(wù)器上的應(yīng)用怎么告訴底層的RPC框架,如何連接到B服務(wù)器(如主機(jī)或IP地址)以及特定的端口,方法的名稱(chēng)名稱(chēng)是什么。24M28資訊網(wǎng)——每日最新資訊28at.com

通常情況下我們需要提供B機(jī)器(主機(jī)名或IP地址)以及特定的端口,然后指定調(diào)用的方法或者函數(shù)的名稱(chēng)以及入?yún)⒊鰠⒌刃畔ⅲ@樣才能完成服務(wù)的一個(gè)調(diào)用。24M28資訊網(wǎng)——每日最新資訊28at.com

可靠的尋址方式(主要是提供服務(wù)的發(fā)現(xiàn))是RPC的實(shí)現(xiàn)基石,比如可以采用redis或者zookeeper來(lái)注冊(cè)服務(wù)等等。24M28資訊網(wǎng)——每日最新資訊28at.com

圖片圖片24M28資訊網(wǎng)——每日最新資訊28at.com

從服務(wù)提供者的角度看:當(dāng)提供者服務(wù)啟動(dòng)時(shí),需要自動(dòng)向注冊(cè)中心注冊(cè)服務(wù);24M28資訊網(wǎng)——每日最新資訊28at.com

當(dāng)提供者服務(wù)停止時(shí),需要向注冊(cè)中心注銷(xiāo)服務(wù);24M28資訊網(wǎng)——每日最新資訊28at.com

提供者需要定時(shí)向注冊(cè)中心發(fā)送心跳,一段時(shí)間未收到來(lái)自提供者的心跳后,認(rèn)為提供者已經(jīng)停止服務(wù),從注冊(cè)中心上摘取掉對(duì)應(yīng)的服務(wù)。24M28資訊網(wǎng)——每日最新資訊28at.com

從調(diào)用者的角度看:調(diào)用者啟動(dòng)時(shí)訂閱注冊(cè)中心的消息并從注冊(cè)中心獲取提供者的地址;24M28資訊網(wǎng)——每日最新資訊28at.com

當(dāng)有提供者上線(xiàn)或者下線(xiàn)時(shí),注冊(cè)中心會(huì)告知到調(diào)用者;24M28資訊網(wǎng)——每日最新資訊28at.com

調(diào)用者下線(xiàn)時(shí),取消訂閱。24M28資訊網(wǎng)——每日最新資訊28at.com

3、網(wǎng)絡(luò)傳輸24M28資訊網(wǎng)——每日最新資訊28at.com

  • 序列化

當(dāng)A機(jī)器上的應(yīng)用發(fā)起一個(gè)RPC調(diào)用時(shí),調(diào)用方法和其入?yún)⒌刃畔⑿枰ㄟ^(guò)底層的網(wǎng)絡(luò)協(xié)議如TCP傳輸?shù)紹機(jī)器,由于網(wǎng)絡(luò)協(xié)議是基于二進(jìn)制的,所有我們傳輸?shù)膮?shù)數(shù)據(jù)都需要先進(jìn)行序列化(Serialize)或者編組(marshal)成二進(jìn)制的形式才能在網(wǎng)絡(luò)中進(jìn)行傳輸。然后通過(guò)尋址操作和網(wǎng)絡(luò)傳輸將序列化或者編組之后的二進(jìn)制數(shù)據(jù)發(fā)送給B機(jī)器。24M28資訊網(wǎng)——每日最新資訊28at.com

  • 反序列化

當(dāng)B機(jī)器接收到A機(jī)器的應(yīng)用發(fā)來(lái)的請(qǐng)求之后,又需要對(duì)接收到的參數(shù)等信息進(jìn)行反序列化操作(序列化的逆操作),即將二進(jìn)制信息恢復(fù)為內(nèi)存中的表達(dá)方式,然后再找到對(duì)應(yīng)的方法(尋址的一部分)進(jìn)行本地調(diào)用(一般是通過(guò)生成代理Proxy去調(diào)用,通常會(huì)有JDK動(dòng)態(tài)代理、CGLIB動(dòng)態(tài)代理、Javassist生成字節(jié)碼技術(shù)等),之后得到調(diào)用的返回值。24M28資訊網(wǎng)——每日最新資訊28at.com

4、服務(wù)調(diào)用24M28資訊網(wǎng)——每日最新資訊28at.com

B機(jī)器進(jìn)行本地調(diào)用(通過(guò)代理Proxy)之后得到了返回值,此時(shí)還需要再把返回值發(fā)送回A機(jī)器,同樣也需要經(jīng)過(guò)序列化操作,然后再經(jīng)過(guò)網(wǎng)絡(luò)傳輸將二進(jìn)制數(shù)據(jù)發(fā)送回A機(jī)器,而當(dāng)A機(jī)器接收到這些返回值之后,則再次進(jìn)行反序列化操作,恢復(fù)為內(nèi)存中的表達(dá)方式,最后再交給A機(jī)器上的應(yīng)用進(jìn)行相關(guān)處理(一般是業(yè)務(wù)邏輯處理操作)。24M28資訊網(wǎng)——每日最新資訊28at.com

面試題2:常見(jiàn)的RPC框架有哪些?

  • Thrift:thrift是一個(gè)軟件框架,用來(lái)進(jìn)行可擴(kuò)展且跨語(yǔ)言的服務(wù)的開(kāi)發(fā)。它結(jié)合了功能強(qiáng)大的軟件堆棧和代碼生成引擎,以構(gòu)建在 C++, Java, Python, PHP, Ruby, Erlang, Perl, Haskell, C#, Cocoa, JavaScript, Node.js, Smalltalk, and OCaml 這些編程語(yǔ)言間無(wú)縫結(jié)合的、高效的服務(wù)。
  • Dubbo:Dubbo是一個(gè)分布式服務(wù)框架,以及SOA治理方案。其功能主要包括:高性能NIO通訊及多協(xié)議集成,服務(wù)動(dòng)態(tài)尋址與路由,軟負(fù)載均衡與容錯(cuò),依賴(lài)分析與降級(jí)等。Dubbo是阿里巴巴內(nèi)部的SOA服務(wù)化治理方案的核心框架,Dubbo自2011年開(kāi)源后,已被許多非阿里系公司使用。
  • Spring Cloud:Spring Cloud由眾多子項(xiàng)目組成,如Spring Cloud Config、Spring Cloud Netflix、Spring Cloud Consul 等,提供了搭建分布式系統(tǒng)及微服務(wù)常用的工具,如配置管理、服務(wù)發(fā)現(xiàn)、斷路器、智能路由、微代理、控制總線(xiàn)、一次性token、全局鎖、選主、分布式會(huì)話(huà)和集群狀態(tài)等,滿(mǎn)足了構(gòu)建微服務(wù)所需的所有解決方案。Spring Cloud基于Spring Boot, 使得開(kāi)發(fā)部署極其簡(jiǎn)單。

面試題3:說(shuō)說(shuō)RPC和SOA、SOAP、REST的區(qū)別吧

1、REST24M28資訊網(wǎng)——每日最新資訊28at.com

可以看著是HTTP協(xié)議的一種直接應(yīng)用,默認(rèn)基于JSON作為傳輸格式,使用簡(jiǎn)單,學(xué)習(xí)成本低效率高,但是安全性較低。24M28資訊網(wǎng)——每日最新資訊28at.com

2、SOAP24M28資訊網(wǎng)——每日最新資訊28at.com

SOAP是一種數(shù)據(jù)交換協(xié)議規(guī)范,是一種輕量的、簡(jiǎn)單的、基于XML的協(xié)議的規(guī)范。而SOAP可以看著是一個(gè)重量級(jí)的協(xié)議,基于XML、SOAP在安全方面是通過(guò)使用XML-Security和XML-Signature兩個(gè)規(guī)范組成了WS-Security來(lái)實(shí)現(xiàn)安全控制的,當(dāng)前已經(jīng)得到了各個(gè)廠(chǎng)商的支持。24M28資訊網(wǎng)——每日最新資訊28at.com

它主要的優(yōu)點(diǎn)是:易用、靈活、跨語(yǔ)言、跨平臺(tái)。24M28資訊網(wǎng)——每日最新資訊28at.com

3、SOA24M28資訊網(wǎng)——每日最新資訊28at.com

面向服務(wù)架構(gòu),它可以根據(jù)需求通過(guò)網(wǎng)絡(luò)對(duì)松散耦合的粗粒度應(yīng)用組件進(jìn)行分布式部署、組合和使用。服務(wù)層是SOA的基礎(chǔ),可以直接被應(yīng)用調(diào)用,從而有效控制系統(tǒng)中與軟件代理交互的人為依賴(lài)性。24M28資訊網(wǎng)——每日最新資訊28at.com

SOA是一種粗粒度、松耦合服務(wù)架構(gòu),服務(wù)之間通過(guò)簡(jiǎn)單、精確定義接口進(jìn)行通訊,不涉及底層編程接口和通訊模型。SOA可以看作是B/S模型、XML(標(biāo)準(zhǔn)通用標(biāo)記語(yǔ)言的子集)/Web Service技術(shù)之后的自然延伸。24M28資訊網(wǎng)——每日最新資訊28at.com

本文鏈接:http://www.tebozhan.com/showinfo-26-93855-0.html什么是RPC框架?實(shí)現(xiàn)原理呢?與SOA、REST有啥區(qū)別?

聲明:本網(wǎng)頁(yè)內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問(wèn)題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。郵件:2376512515@qq.com

上一篇: 技術(shù)人必看:如何選擇適合你公司的消息隊(duì)列工具

下一篇: 高可用解決方案詳解(八大主流架構(gòu)方案)

標(biāo)簽:
  • 熱門(mén)焦點(diǎn)
  • Find N3入網(wǎng):最高支持16+1TB

    OPPO將于近期登場(chǎng)的Find N3折疊屏目前已經(jīng)正式入網(wǎng),型號(hào)為PHN110。本次Find N3在外觀(guān)方面相比前兩代有很大的變化,不再是小號(hào)的橫向折疊屏,而是跟別的廠(chǎng)商一樣采用了較為常見(jiàn)的
  • MIX Fold3包裝盒泄露 新機(jī)本月登場(chǎng)

    小米的全新折疊屏旗艦MIX Fold3將于本月發(fā)布,近日該機(jī)的真機(jī)包裝盒在網(wǎng)上泄露。從圖上來(lái)看,新的MIX Fold3包裝盒在外觀(guān)設(shè)計(jì)方面延續(xù)了之前的方案,變化不大,這也是目前小米旗艦
  • 6月iOS設(shè)備性能榜:M2穩(wěn)居榜首 A系列只能等一手3nm來(lái)救

    沒(méi)有新品發(fā)布,自然iOS設(shè)備性能榜的上榜設(shè)備就沒(méi)有什么更替,僅僅只有跑分變化而產(chǎn)生的排名變動(dòng),畢竟蘋(píng)果新品的發(fā)布節(jié)奏就是這樣的,一年下來(lái)也就幾個(gè)移動(dòng)端新品,不會(huì)像安卓廠(chǎng)商,一
  • JavaScript 混淆及反混淆代碼工具

    介紹在我們開(kāi)始學(xué)習(xí)反混淆之前,我們首先要了解一下代碼混淆。如果不了解代碼是如何混淆的,我們可能無(wú)法成功對(duì)代碼進(jìn)行反混淆,尤其是使用自定義混淆器對(duì)其進(jìn)行混淆時(shí)。什么是混
  • Raft算法:保障分布式系統(tǒng)共識(shí)的穩(wěn)健之道

    1. 什么是Raft算法?Raft 是英文”Reliable、Replicated、Redundant、And Fault-Tolerant”(“可靠、可復(fù)制、可冗余、可容錯(cuò)”)的首字母縮寫(xiě)。Raft算法是一種用于在分布式系統(tǒng)
  • 之家push系統(tǒng)迭代之路

    前言在這個(gè)信息爆炸的互聯(lián)網(wǎng)時(shí)代,能夠及時(shí)準(zhǔn)確獲取信息是當(dāng)今社會(huì)要解決的關(guān)鍵問(wèn)題之一。隨著之家用戶(hù)體量和內(nèi)容規(guī)模的不斷增大,傳統(tǒng)的靠"主動(dòng)拉"獲取信息的方式已不能滿(mǎn)足用
  • 虛擬鍵盤(pán) API 的妙用

    你是否在遇到過(guò)這樣的問(wèn)題:移動(dòng)設(shè)備上有一個(gè)固定元素,當(dāng)激活虛擬鍵盤(pán)時(shí),該元素被隱藏在了鍵盤(pán)下方?多年來(lái),這一直是 Web 上的默認(rèn)行為,在本文中,我們將探討這個(gè)問(wèn)題、為什么會(huì)發(fā)生
  • 得物寵物生意「狂飆」,發(fā)力“它經(jīng)濟(jì)”

    作者|花花小萌主近日,得物宣布正式上線(xiàn)寵物鑒別,通過(guò)得物App內(nèi)的“在線(xiàn)鑒別”,可找到鑒別寵物的選項(xiàng)。通過(guò)上傳自家寵物的部位細(xì)節(jié),就能收獲擁有專(zhuān)業(yè)資質(zhì)認(rèn)證的得物鑒
  • 華為將推出盤(pán)古數(shù)字人大模型 可幫助用戶(hù)12小時(shí)完成數(shù)字人生成

    在今日舉行的2023年華為云數(shù)字文娛AI創(chuàng)新峰會(huì)上,華為云全球Marketing與銷(xiāo)售服務(wù)總裁石冀琳表示,華為云將在后續(xù)推出盤(pán)古數(shù)字人大模型,可幫助用戶(hù)12小
Top