阿里首席架构师科普RPC框架是什么
2019獨(dú)角獸企業(yè)重金招聘Python工程師標(biāo)準(zhǔn)>>>
RPC概念及分類
RPC全稱為Remote Procedure Call,翻譯過來為“遠(yuǎn)程過程調(diào)用”。目前,主流的平臺(tái)中都支持各種遠(yuǎn)程調(diào)用技術(shù),以滿足分布式系統(tǒng)架構(gòu)中不同的系統(tǒng)之間的遠(yuǎn)程通信和相互調(diào)用。遠(yuǎn)程調(diào)用的應(yīng)用場景極其廣泛,實(shí)現(xiàn)的方式也各式各樣。
?
從通信協(xié)議的層面,大致可以分為:
基于HTTP協(xié)議的(例如基于文本的SOAP(XML)、Rest(JSON),基于二進(jìn)制Hessian(Binary))
基于TCP協(xié)議的(通常會(huì)借助Mina、Netty等高性能網(wǎng)絡(luò)框架)
?
從不同的開發(fā)語言和平臺(tái)層面,分為:
單種語言或平臺(tái)特定支持的通信技術(shù)(例如Java平臺(tái)的RMI、.NET平臺(tái)Remoting)
支持跨平臺(tái)通信的技術(shù)(例如HTTP Rest、Thrift等)
?
從調(diào)用過程來看,分為:
同步通信調(diào)用(同步RPC)
異步通信調(diào)用(MQ、異步RPC)
?
常見的幾種通信方式
1.?遠(yuǎn)程數(shù)據(jù)共享(例如:共享遠(yuǎn)程文件,共享數(shù)據(jù)庫等實(shí)現(xiàn)不同系統(tǒng)通信)
2.?消息隊(duì)列
3.?RPC(遠(yuǎn)程過程調(diào)用)
?
序列化/反序列化
只有二進(jìn)制數(shù)據(jù)才能在網(wǎng)絡(luò)中傳輸,序列化和反序列化的定義是:
將對象轉(zhuǎn)換成二進(jìn)制流的過程叫做序列化,
將二進(jìn)制流轉(zhuǎn)換成對象的過程叫做反序列化。
?
Java和.NET平臺(tái)中常見的通信技術(shù)
Java中支持的包括:
| 技術(shù) | 簡介 | 是否支持跨平臺(tái) |
| Corbra | 90年代產(chǎn)物,已被淘汰 | 不支持 |
| RMI | EJB時(shí)代產(chǎn)物,已逐漸被淘汰 | 不支持 |
| WebService | 基于Http SOAP,效率低,逐漸被淘汰 | 支持 |
| Hessain | 基于Http,二進(jìn)制序列化,效率高,使用廣泛 | 支持 |
| Rest(spring mvc等) | 支持Http Rest,廣泛應(yīng)用于無線API,開放平臺(tái)等 | 支持 |
| JMS、開源MQ | Java消息服務(wù)(消息中間件),使用廣泛 | 支持 |
| Socket | 基于Mina、Netty(NIO、AIO高效通信) | 理論上支持 |
.NET中包括:
| 技術(shù) | 簡介 | 是否支持跨平臺(tái) |
| WebService | 基于Http SOAP,效率低,逐漸被WCF整合淘汰 | 支持 |
| .NET Remoting | 通信效率尚可,使用復(fù)雜,逐漸被WCF整合淘汰 | 不支持 |
| WCF SOAP | 整合了原有的WebService,通信效率低 | 支持 |
| WCF NET.TCP | 通信效率高,部分.NET項(xiàng)目內(nèi)部服務(wù)在使用 | 不支持 |
| WCF Rest | 使用較少,已經(jīng)被Web Api逐漸取代 | 支持 |
| Web Api | 支持Http Rest,廣泛應(yīng)用于無線API,開放平臺(tái)等 | 支持 |
| MSMQ、開源MQ | 微軟自己的消息中間件或者其他開源MQ | 支持(MSMQ除外) |
| Hessain .NET | 基于Http,二進(jìn)制序列化,效率高,使用較少 | 支持 |
| Socket | 通過Socket網(wǎng)絡(luò)編程方式實(shí)現(xiàn)系統(tǒng)通信 | 理論上支持 |
互聯(lián)網(wǎng)時(shí)代常見的RPC技術(shù)和框架
應(yīng)用級(jí)的服務(wù)框架:
Dubbo/Dubbox
ZeroICE
GRpc
Spring Boot/Spring Cloud
?
基礎(chǔ)通信框架:
Protocol Buffers
Thrift
?
遠(yuǎn)程通信協(xié)議:
RMI
Socket
SOAP(HTTP XML)
REST(HTTP JSON)
RPC的注意事項(xiàng)
性能
影響RPC性能的主要在幾個(gè)方面:
1.序列化/反序列化的框架
2.網(wǎng)絡(luò)協(xié)議,網(wǎng)絡(luò)模型,線程模型等
安全
RPC安全的主要在于服務(wù)接口的鑒權(quán)和訪問控制支持。
?
跨平臺(tái)
跨不同的操作系統(tǒng),不同的編程語言和平臺(tái)。
?
跨平臺(tái)RPC技術(shù)和常見框架
SOAP WebService
Hessian
HTTP Rest
Thrift
GRpc(Protobuffer)
Zero ICE
消息中間件
RPC框架的視頻已經(jīng)錄制好,分享群619881427中免費(fèi)下載學(xué)習(xí),希望能夠幫助有需要的程序員們。
轉(zhuǎn)載于:https://my.oschina.net/u/3779583/blog/1832358
總結(jié)
以上是生活随笔為你收集整理的阿里首席架构师科普RPC框架是什么的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux zookeeper安装并设置
- 下一篇: python全栈开发 * 14