哈喽各位同學們大家好呀,小編今天帶着開發者學院中課程“微服務架構常用RPC協定”幹貨總結來了~一起學習新課程吧!
課程連結以及圖譜位址小編已經為大家指路了,搭配學習效果更佳👇
課程名稱:微服務架構常用RPC協定
課程位址:
https://developer.aliyun.com/learning/course/60/detail/1109圖譜名稱:Alibaba Java 技術圖譜
圖譜位址:
https://developer.aliyun.com/graph/java微服務架構常用RPC協定
本期課程包括微服務常用的通信模式、經典的RPC協定、微服務常用的通信協定等知識點
一、微服務常用的通信模式
1、微服務的消息通信模式
消息交換的模式有很多種,使用較多的是同步消息的互動模式,典型特征是發送完消息後會等待一個結果,
浏覽器發送一個網頁請求後,會等待網頁傳回,中間存在請求應答的過程,這就屬于同步請求的模式。 異步請求模式的常見場景是消息推送,發送完某個消息後,這個消息并不會立即到達,可能會經過一定延遲才到達接收方。異步模式的優點是并發或吞吐量較高;缺點是無法保證消息的實時性。
目前在分布式架構上,同步與異步相結合的消息交換場景也很常見。
協定上絕大部分都是同步模式,個别支援異步,例如郵件協定或者消息協定。
二、經典的RPC協定
RPC本身是遠端過程調用,主要解決遠端的通信問題,而不僅是封裝原始的資料通信協定與網絡協定。
在此基礎上,需要借助某些架構語言來實作功能的互動。例如,希望用戶端通過調用伺服器端的某個訂單或者加密的功能,實作遠端的功能調用。
這是通過網絡來暴露自己代碼功能較早的一種方式。RPC協定非常多,不僅是REST API,APP協定暴露接口,前端分裂架構基本上也都是API加前端、小程式、APP、PC網頁等這種模式,是在移動網際網路時代用得較多的架構。
前端分離,後端演化成微服務架構。微服務架構一般和業務模式有關,業務需求是第一位,技術服務于業務。在内部通信領域,并非隻有一種協定,可能多種協定并存,如TCP、UDP、HTTP等協定并存。
Rest API基本上走的是APP協定,一般是接收資料格式。在這個領域裡面,RPC概念在native本身也支援分布式通信架構。但是相對來說,在大規模分布式叢集治理領域,阿裡的Dubbo設計非常優秀,不斷疊代,表現優異。
資料庫JDBC屬于分布式通信解決方案之一,但通信協定是GDB架構定義,專有的協定格式,支援引入中間鍊、消息隊列等,使用不同的協定進行通信。
這并非表示跨平台是最優秀的,它的性能越好,安全性越高,可能越封閉。但是它開放性标準化有助于大範圍的行業推廣,适用性更強。有些公司的協定不開放,這是由于從公司的業務角度來說,微服務屬于分布式架構。
分布架構繼承了早期的分布式架構特點,在RVICES API這些應用基礎上進行了架構的更新改造,在大規模的服務接口叢集化治理走向了更高的層次,架構師面臨的挑戰也更大。
那麼在分布系統中常用的一些RPC協都有哪些呢?
三、微服務常用的通信協定
1、微服務之間的通信協定與架構中間件
目前,微服務以Spring Cloud開發為代表,選取的是 Rest通信接口格式,後續的微服架構可能更多,有些微服務支援更多的協定和資料格式。目前主流的是HTTP,屬于同步消息通信模式,H5走websocket。
當下的移動網際網路時代大部分追求輕量級接口,目前的架構如Rest API、Java、Go還是node,都非常友善,可以直接在APP協定站基礎上進行擴充。
消息隊列在早期分布式架構中經常使用,比較經典的是RabbitMQ兔子消息隊、Kafka、RocketMQ火箭消息隊,Kafka的消息并發量和吞吐量能達到百萬級别。
對于全新的微服加工來說,可能會存在幾種協定,有同步、異步和兩種形式并存,也有可能是使用APP協定或其他的TCP或者二進制等相關協定,這幾種協定經典且各有所長。
在物聯網行業存在特殊情況,可能進行對接時候,裝置可能還有自己的資料協定,但是每個分布式架構底層可能支援一種協定或者多種協定。
不同語言的REST架構基本由WEB架構改造,怎樣才能滿足大部分的場景需求呢?
帶着疑問,請同學們點選“閱讀原文”檢視完整課程叭~
好啦~本期小編就分享到這裡,想學習更多嘛?點選下方"閱讀原文"檢視更多課程吧!