成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

什么是RPC框架?實現原理呢?與SOA、REST有啥區別?

開發 架構
SOAP是一種數據交換協議規范,是一種輕量的、簡單的、基于XML的協議的規范。而SOAP可以看著是一個重量級的協議,基于XML、SOAP在安全方面是通過使用XML-Security和XML-Signature兩個規范組成了WS-Security來實現安全控制的,當前已經得到了各個廠商的支持。

面試題1:說說你對RPC框架的理解?

RPC (Remote Procedure Call)即遠程過程調用,是分布式系統常見的一種通信方法。它允許程序調用另一個地址空間(通常是共享網絡的另一臺機器上)的過程或函數,而不用程序員顯式編碼這個遠程調用的細節。

除 RPC 之外,常見的多系統數據交互方案還有分布式消息隊列、HTTP 請求調用、數據庫和分布式緩存等。

其中 RPC 和 HTTP 調用是沒有經過中間件的,它們是端到端系統的直接數據交互。

通俗點說

  • RPC就是從一臺機器(客戶端)上通過參數傳遞的方式調用另一臺機器(服務器)上的一個函數或方法(可以統稱為服務)并得到返回的結果。
  • RPC會隱藏底層的通訊細節(不需要直接處理Socket通訊或Http通訊)。
  • 客戶端發起請求,服務器返回響應(類似于Http的工作方式)RPC在使用形式上像調用本地函數(或方法)一樣去調用遠程的函數(或方法)。

追問1:RPC框架實現原理是什么樣的

在RPC框架中主要有三個角色:提供者、消費者和注冊中心。如下圖所示:

圖片圖片

  • 提供者: 暴露服務的服務提供方。
  • 提供者: 調用遠程服務的服務消費方。
  • 注冊中心: 服務注冊與發現的注冊中心。

圖片圖片

原理圖如上,也就是說兩臺服務器A,B,一個應用部署在A服務器上,想要調用B服務器上應用提供的函數/方法,由于不在一個內存空間,不能直接調用,需要通過網絡來表達調用的語義和傳達調用的數據。

比如說,A服務器想調用B服務器上的一個方法:Employee getEmployeeByName(String fullName)

RPC整個調用過程,主要經歷如下幾個步驟:

1、建立通信

首先要解決通訊的問題:即A機器想要調用B機器,首先得建立起通信連接。

主要是通過在客戶端和服務器之間建立TCP連接,遠程過程調用的所有交換的數據都在這個連接里傳輸。連接可以是按需連接,調用結束后就斷掉,也可以是長連接,多個遠程過程調用共享同一個連接。

2、服務尋址

要解決尋址的問題,也就是說,A服務器上的應用怎么告訴底層的RPC框架,如何連接到B服務器(如主機或IP地址)以及特定的端口,方法的名稱名稱是什么。

通常情況下我們需要提供B機器(主機名或IP地址)以及特定的端口,然后指定調用的方法或者函數的名稱以及入參出參等信息,這樣才能完成服務的一個調用。

可靠的尋址方式(主要是提供服務的發現)是RPC的實現基石,比如可以采用redis或者zookeeper來注冊服務等等。

圖片圖片

從服務提供者的角度看:當提供者服務啟動時,需要自動向注冊中心注冊服務;

當提供者服務停止時,需要向注冊中心注銷服務;

提供者需要定時向注冊中心發送心跳,一段時間未收到來自提供者的心跳后,認為提供者已經停止服務,從注冊中心上摘取掉對應的服務。

從調用者的角度看:調用者啟動時訂閱注冊中心的消息并從注冊中心獲取提供者的地址;

當有提供者上線或者下線時,注冊中心會告知到調用者;

調用者下線時,取消訂閱。

3、網絡傳輸

  • 序列化

當A機器上的應用發起一個RPC調用時,調用方法和其入參等信息需要通過底層的網絡協議如TCP傳輸到B機器,由于網絡協議是基于二進制的,所有我們傳輸的參數數據都需要先進行序列化(Serialize)或者編組(marshal)成二進制的形式才能在網絡中進行傳輸。然后通過尋址操作和網絡傳輸將序列化或者編組之后的二進制數據發送給B機器。

  • 反序列化

當B機器接收到A機器的應用發來的請求之后,又需要對接收到的參數等信息進行反序列化操作(序列化的逆操作),即將二進制信息恢復為內存中的表達方式,然后再找到對應的方法(尋址的一部分)進行本地調用(一般是通過生成代理Proxy去調用,通常會有JDK動態代理、CGLIB動態代理、Javassist生成字節碼技術等),之后得到調用的返回值。

4、服務調用

B機器進行本地調用(通過代理Proxy)之后得到了返回值,此時還需要再把返回值發送回A機器,同樣也需要經過序列化操作,然后再經過網絡傳輸將二進制數據發送回A機器,而當A機器接收到這些返回值之后,則再次進行反序列化操作,恢復為內存中的表達方式,最后再交給A機器上的應用進行相關處理(一般是業務邏輯處理操作)。

面試題2:常見的RPC框架有哪些?

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

面試題3:說說RPC和SOA、SOAP、REST的區別吧

1、REST

可以看著是HTTP協議的一種直接應用,默認基于JSON作為傳輸格式,使用簡單,學習成本低效率高,但是安全性較低。

2、SOAP

SOAP是一種數據交換協議規范,是一種輕量的、簡單的、基于XML的協議的規范。而SOAP可以看著是一個重量級的協議,基于XML、SOAP在安全方面是通過使用XML-Security和XML-Signature兩個規范組成了WS-Security來實現安全控制的,當前已經得到了各個廠商的支持。

它主要的優點是:易用、靈活、跨語言、跨平臺。

3、SOA

面向服務架構,它可以根據需求通過網絡對松散耦合的粗粒度應用組件進行分布式部署、組合和使用。服務層是SOA的基礎,可以直接被應用調用,從而有效控制系統中與軟件代理交互的人為依賴性。

SOA是一種粗粒度、松耦合服務架構,服務之間通過簡單、精確定義接口進行通訊,不涉及底層編程接口和通訊模型。SOA可以看作是B/S模型、XML(標準通用標記語言的子集)/Web Service技術之后的自然延伸。

責任編輯:武曉燕 來源: 一安未來
相關推薦

2022-08-16 07:32:03

RestfulSOAPRPC

2019-10-25 09:50:03

網絡爬蟲蜘蛛Wi-Fi

2009-08-05 15:37:50

什么是RESTRESTful的實現

2022-01-17 10:07:05

PodmanDocker容器

2019-10-28 11:47:15

Docker虛擬機操作系統

2024-03-08 08:26:20

防抖節流delay?

2023-01-04 11:41:31

微服務SOA架構

2015-02-13 10:24:51

微信

2018-01-30 11:17:56

集群分布式SOA?

2018-10-23 09:13:24

程序員學歷求職者

2018-07-13 17:05:22

SQLMySQL數據庫

2023-10-13 15:48:17

OT系統

2022-02-14 21:17:21

RPC框架協議

2020-12-22 13:46:48

APISKD

2011-08-08 14:09:55

dhcpbootp

2022-10-20 23:21:21

2022-09-15 08:01:32

CPU使用率異步

2022-01-07 06:12:08

RPC框架限流

2019-02-27 15:22:15

混合云云計算多云

2021-05-16 15:28:59

沙箱容器惡意軟件
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产精品久久久久久婷婷天堂 | 久久成人免费视频 | 在线只有精品 | 在线小视频| 天天操天天天干 | 欧美日韩亚 | 亚洲欧美日韩电影 | 给我免费的视频在线观看 | 亚洲永久在线 | 亚洲成年影院 | 国产一区二区三区四区 | 久久99精品久久久久蜜桃tv | 日日干日日色 | 久久久久久www | 久久久91精品国产一区二区三区 | 精品国产乱码一区二区三区 | 一区中文字幕 | 中文字幕亚洲欧美日韩在线不卡 | 亚洲 中文 欧美 日韩 在线观看 | 国产一区二区在线播放视频 | 懂色中文一区二区三区在线视频 | 欧美精产国品一二三区 | 麻豆国产一区二区三区四区 | 亚洲视频一区在线播放 | 91xxx在线观看 | www.蜜桃av| 91精品国产高清久久久久久久久 | 伊人二区 | 中文在线www | 亚洲一区精品在线 | 国产精品久久久久久久久久免费看 | www312aⅴ欧美在线看 | 亚洲一二三在线 | 日韩国产一区二区三区 | 97av视频| 日本a∨视频 | 黄色一级大片在线免费看产 | 永久www成人看片 | 免费在线视频一区二区 | 久色视频在线 | 精品欧美一区二区在线观看欧美熟 |