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

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

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相關技術知識。
--------------------------------------------------------------------

相關文章
相關標籤/搜索