微服務架構介紹和RPC框架對比


微服務架構介紹和RPC框架對比

1.微服務架構

1.1 特征

自動化部署,端點智能化,語言和數據的去中心化控制。

1.2架構

一種將一個單一應用程序開發為一組小型服務的方法,每個服務運行在自己的進程中,服務間通信采用輕量級通信機制(通常用HTTP資源API)。可通過全自動部署機制獨立部署,共用一個最小型的集中式的管理。服務可用不同的語言開發,使用不同的數據存儲技術。

  • 去中心化基礎設施

  • 去中心化數據庫

1.3微服務設計模式

  • 聚合式(推薦)

  • 代理(推薦)

  • 鏈式

  • 分支

  • 異步消息

1.4微服務實現

1.4.1  通信方式

REST和RPC

1.4.2  RPC框架

  • Dubbo/ Dubbox

      阿里巴巴公司開源的一個Java高性能優秀的服務框架,可以和Spring框架無縫集成,相關資料很豐富。

遺憾的是已經停止維護了,相關的依賴類比如Spring,Netty還是很老的版本。倒是當當網之類的再繼續維維護,即Dubbox,並且實現了REST的支持。

Dubbo主要實現了服務治理,其他為保證集群安全、可維護、可測試等特性方面都沒有很好的實現,但是幾乎大部分關鍵組件都能找到第三方開源來實現。

      所以,如果選擇Dubbo請務必在各個環節做好整套解決方案的准備,不然很可能隨着服務數量的增長,整個團隊都將疲於應付各種架構上不足引起的困難,不能讓各環節人員真正的專注於業務邏輯。

  • Motan

      新浪微博的服務治理框架,2016年5月開源,Motan是一個小而精的 RPC 框架,它的特點是簡單、易用,是一個輕量級 RPC框架。

      與Dubbo相比,Motan在功能方面並沒有那么全面,也沒有實現特別多的擴展。用的人比較少,功能和穩定性有待觀望。對跨語言調用支持較差,主要支持java。

  • Spring Cloud(推薦)

      Spring Cloud 完全基於Spring Boot,是一個非常新的項目,2016年才 1.0 release。版本提升非常迅速,發展勢頭良好。

Spring Cloud依然發揚了Spring Source整合一切的作風,以標准化的姿態將一些微服務架構的成熟產品與框架揉為一體,並繼承了Spring Boot簡單配置、快速開發、輕松部署的特點,讓原本復雜的架構工作變得相對容易上手一些。服務調用方式是基於REST API的。

       缺點是項目很年輕,很少見到國內業界有人在生產上成套使用,一般都是只有其中一兩個組件。相關的技術文檔大部分是英文的,案例也相對較少,使用的話需要摸索的時間會長一些。

      下圖是Spring Cloud和Dubbo的對比:

  • gRPC

      Google發布的開源RPC框架,高性能、開源、將移動和HTTP/2放在首位的通用的RPC框架,基於HTTP/2, netty4.1, proto3, 擁有非常豐富而實用的特性,堪稱RPC 框架的典范。

      但它本身它不是分布式的,所以要實現上面的框架的功能需要進一步的開發。

 

--------------------------------------------------------------------
PS: 歡迎關注公眾號"Devin說",會不定期更新Java相關技術知識。
--------------------------------------------------------------------


免責聲明!

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



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