天天看點

分布式架構,微服務架構,rest風格,rpc協定

一、分布式&微服務

1、分布式:指導節點之間如何通信

2、微服務:鼓勵按業務劃分子產品。

3、微服務架構通過分布式架構來實作。

4、微服務中的各個子產品有自己的代碼,測試流程,上線流程等。

5、微服務通常需要配合自動化測試,部署,服務發現等。(否則成千上萬個服務,人工弄很麻煩。)

二、rest:

REST 不是一種協定,它是一種架構,大部分的REST的實作中使用了RPC的機制,大緻與有三部分組成:

1、method:動詞(get,post之類的)

2、Host/post:URI(統一資源辨別)、伺服器,端口

3、Path:名詞(路徑,伺服器裡面的某個東西)路徑的結尾是資源的形态(如text, html, image, pdf等)。

即、對host裡面的某個Path裡面的東西做一些get或post操作。

三、rpc:

1、RPC 即遠端過程調用, 很簡單的概念, 像調用本地服務(方法)一樣調用伺服器的服務(方法). 通常的實作有 XML-RPC,JSON-RPC , 通信方式基本相同, 所不同的隻是傳輸資料的格式. 

2、通常的調用過程,把函數序列化,遠端收到後,再把函數反序列化,完成函數調用。

詳細講解rpc:https://blog.csdn.net/qq_36183935/article/details/80550457

四、rest和rpc的差別

rpc:想對伺服器裡面的資源進行修改,首先需要了解伺服器中各個接口都是幹啥的,然後把相關參數傳給伺服器提供的接口,讓伺服器自己去執行修改。修改代碼在服務端。是以RPC服務端邏輯更複雜些,伺服器會有很大的工作量,但分工明确,不容易造成失誤。可以基于tcp或http,如果基于tcp,将少一層協定。

REST風格:想對伺服器裡面的資源進行操作,下載下傳伺服器端的目前狀态,修改之後将最終使用者所期待的狀态發送給伺服器,伺服器按照客戶的期待進行修改。修改代碼在用戶端。是以REST風格用戶端邏輯相比rpc用戶端更複雜。自由度更大一些,但是以造成失誤的可能性也大一些。傳輸層基于HTTP,相比于TCP,多了一層協定。但基于HTTP傳輸,可以穿越防火牆,适合組織内向組織外提供服務。

五、例子

如果要對服務端資料庫裡面的一個數加1,減1:兩種不同的實作方式如下:

rpc中,服務端應該留兩個接口函數,分别對應加1,減1操作,函數裡面有參數,當用戶端需要進行修改時,先要弄明白那個做加1操作,哪個做減1操作,然後參入相應參數,讓服務端進行加1,減1操作後更改資料庫

rest風格中:服務端隻要留一個接口函數就可以,作用是更改資料庫裡面的數(不管它是加了還是減了),然後用戶端有兩個函數,分别進行加操作和減操作,但用戶端操作完都送出給同一個服務端函數,然後更改資料庫。

六、目前流行架構圖:

分布式架構,微服務架構,rest風格,rpc協定

繼續閱讀