有http了,為什麼還要用rpc?

2021-08-22 07:16:26 字數 485 閱讀 1151

http 和 rpc 並不是乙個並行概念。

http是超文字傳輸協議,應用層網路協議。

rpc不是協議,是指遠端過程呼叫,對不同應用間相互呼叫的一種描述。其呼叫協議通常包含傳輸協議和編碼協議;支援http和tcp;

rpc呼叫是面向服務的封裝,針對服務的可用性和效率等都做了優化。單純使用http呼叫則缺少了這些特性。

例如rpc框架提供的負載均衡,服務治理,自動熔斷/降級,實現二進位制傳輸等;

如果把乙個http server容器上封裝一層服務發現和函式**呼叫,那它就已經可以做乙個rpc框架了。

總結:rpc是一種程式設計模式,把對伺服器的呼叫抽象為過程呼叫,通常伴隨著框架**自動生成等功能。使用rpc做網路服務開發時,通常只需要實現伺服器端的乙個處理函式,其餘的客戶端呼叫,序列化反序列化,方法派發等都由框架或者生成的**來完成,較大地減輕了網路服務開發和呼叫的複雜性。rpc框架更多的在內網中應用間呼叫使用,http 除了內網傳輸,更習慣用在跨網間,跨語言間呼叫。

有http 了,為什麼還要rpc?

技術應該不是為了使用新技術而去使用,而應該是舊技術存在某些瓶頸,存在難以支撐或者擴充套件性越老越差等問題暴露出來之後,用新技術來進行解決。那rpc最大的優點,或者說它相比簡單的http介面,它的優勢 更適合它的業務場景是怎樣呢?簡單的http又 不足,哪些場景明顯不太適合呢?rpc remote p...

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

這個回答裡恰巧講了一些rpc通訊協議的細節,但是強調一遍通訊協議不是rpc最重要的部分,不要被這個回答帶偏了。如果要了解rpc請更多的去了解服務治理 soa 的一些基本策略,推薦去看看dubbo的文件。這個問題其實是有理解誤區的,首先 http 和 rpc 並不是乙個並行概念。rpc是遠端過程呼叫,...

有了 IP 位址,為什麼還要用 MAC 位址?

估計很多人都有這個疑問,但沒見哪本書上解釋清楚,都只是描述ip是什麼,mac是什麼。當資料報到達區域網後,完全可以直接送到對應的ip位址主機,為什麼還要詢問一下對應ip主機的mac位址?乙個郵遞員拿著位址詳細到教室的一封信,收件人是小明,教室裡沒有重名的,郵遞員問 小明的學號是多少?小明站起來回答 ...