java web中,兩個子系統間資料傳輸,使用json好還是RPC遠端服務框架好?為什麼?

時間 2021-05-06 20:30:07

1樓:ccloomi

一般內部系統之間的資料通訊使用RPC,對外提供服務一般用json。rpc和json的區別在於當系統間的呼叫傳了乙個非常複雜的物件時,如果使用json的話會丟失很多態別資訊,導致接收到該json資料的系統需要對json進行解析和進行不安全的型別轉換,而使用rpc的話,系統之間的呼叫傳送的是複雜物件的序列化後的二進位制資料,接收端只需要對該資料進行反序列化就可以得到原來的複雜物件,也就不存在型別轉換的問題了,但是使用rpc需要保證兩個系統有相同的環境,例如A系統中有類a,而B系統中沒有類a的話,那A給B系統傳送乙個包含a類的物件給B系統時,將會導致B系統反序列化失敗。而使用json資料就不會存在這種問題。

所以當兩個系統使用不同的語言開發和對外提供API的時候一般使用json。

2樓:魔王不造反

既然有http 請求,為什麼還要用rpc呼叫?

這兩者沒有好與壞,選擇適合你們系統的。至於效率肯定是 TCP 協議的更高效,當下的微服務發展也異常迅猛,嘗試 SpringCloud 也是一種選擇,我個人更傾向於 TCP 層的 RPC 框架,如:motan、dubbo,而且他們也都有 HTTP 協議的實現,可以自由切換。

其實你不論選擇哪種都不會出什麼問題,只是在協議、效率、擴充套件、活躍度等方面做乙個權衡,這個權衡最終還是由你決定。

3樓:梁浩

我們選用的是JSON-RPC方案,實現起來比RESTful API更自然,比XML-RPC更輕量,而且在實際業務中的表現結果也不錯

已知兩個子空間的維數怎麼求子空間的交?

天下無難課 對於任何乙個n維空間裡的任何乙個子空間,其維數都是n,比如我們處在3維空間裡,你不能說乙個桌面是乙個二維子空間,它依舊是三維的,它上面的任何一點還是需要 長,寬,高 三個數字來標定位置。如果乙個事物需要三個數字來標定,它就是 三維 的。如果要區分桌面這個區域性與整個房間的 維數 差別,我...

兩個系統做對接,其中乙個系統把資料存到另外乙個系統所在伺服器的資料庫當中是否合適?

想起之前也是有這麼乙個類似需求,因為傳輸麻煩,所以我們開發人員想讓甲方直接從我們資料裡拿走資料 別人程式設計師可不想這麼幹 或者他們給乙個他們資料庫庫賬號許可權我們,去寫資料給他們。如果是技術上,當然是完全沒問題 但是因為安全性問題,方案直接被pass掉了因為甲方爸爸是需要保密的部門,所以他們不允許...

如何證明乙個有界且發散的數列必有兩個子列收斂於不同的數?

1 有界無窮數列必有收斂子列,設收斂子列 收斂至A.2 因為整個數列 發散,所以A不是 的極限。根據極限定義,存在 0 eeimg 1 使得 裡有無窮多個數在區間 之外。這無窮多個數構成的子列依然是有界的,所以也存在收斂子列,此收斂子列的極限不在區間 內,自然不等於A。所以我們找到了兩個收斂至不同數...