系統通訊之RPC VS 消息隊列


文前聲明:本人只是知識的搬運工,文中許多知識和觀點大多數都是來自於網絡或書本,因為沒有記錄的習慣學習研究完,便忘記名稱了,如若還記得,在文后自會添加備注。
 
個人觀點,對於這兩種通訊方式我是支持消息隊列的!
 
原由且聽我分析:
 
通訊方式
RPC
消息隊列
優點
舒適感非常好,直接遠程調用,無需關注通訊協議等等細節
(除了這個,我還真不知道RPC還有什么優點)
1、解耦
2、冗余
3、可擴展
4、可恢復
5、交易緩沖
6、消息投遞保證
7、異步通信(支持同步)
8、提高系統吞吐、健壯性
缺點
1、對開發人員素質要求高
2、同步調用(當然是可以做到異步調用的,但大多應用都是同步的),
會造成延遲問題
3、對於分布式系統,難實現分布式事務
4、耦合度高
5、擴展難度大
6、排查業務問題難度高
1、安全控制復雜
2、穩定性要求非常高

實在搞不明白,現在炒的很火的微服務對RPC技術情有獨鍾,難道僅僅是因為開發舒適感爽么?對於分布式系統,在我看來就更不能采用RPC技術了,人雲亦雲:“遠程調用相當於本地調用”,稍微想想就不應該這么認為了,這兩種方式是有本質的區別的。這話是用來誇大RPC的調用性能有多么好的,可惜的是再怎么好,也是遠程調用,既是遠程調用就避不開網絡延遲的問題,消息隊列不是也存在這樣的問題么?試想:一個服務涉及到4個調用A、B、C、D,對於RPC應用來說,其中有一環處理出問題,整個業務鏈路都得必須重新走一遍,但如果用消息隊列,就不一樣了,那一環出問題,就重做那一環就好了,不展開說明了,上述表格已經清晰明了!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM