雪花台湾

Dubbo是微服務架構嗎?


謝看山腰,作為Apache Dubbo的PMC,說兩句。

要想搞清楚題主的問題,我們需要分三個子問題來看:

  1. 什麼是微服務架構
  2. 什麼是Dubbo
  3. 最後來看,Dubbo是不是微服務架構

1、什麼是微服務架構

什麼是微服務架構,可以參考我這篇文章:

kimmking:00.什麼是微服務架構?

zhuanlan.zhihu.com

微服務架構(MicroServices Architecture,MSA):微服務架構可以看做是面向服務架構和分散式服務架構的拓展,使用更細粒度的服務(所以叫微服務)和一組設計準則來考慮大規模的複雜系統架構設計。也可以把它看做是SOA的一種衍生,所以總體來說,微服務架構是一種架構設計思想,也是一種做系統的方法論。

通過Martin Flowler的在【這篇文章】中對微服務描述,可以抽象出以下幾個關鍵點:

更多的學習微服務的知識,可以參考:

kimmking:有沒有講微服務架構比較不錯的書??

zhuanlan.zhihu.comkimmking:微服務架構設計中如何把握「微」度,需要考慮哪幾方面因素??

zhuanlan.zhihu.comkimmking:梁桂釗《顛覆微服務認知:深入思考微服務的七個主流觀點》?

zhuanlan.zhihu.com

如果想要在實際項目中更好的實踐微服務架構,可以參考Gitchat上的萬字長文《微服務架構深度解析與最佳實踐》:

微服務架構深度解析與最佳實踐?

gitbook.cn

微服務架構的概念,現在對於大家應該都不陌生,無論使用 Apache Dubbo、還是 Spring Cloud,都可以去嘗試微服務,把複雜而龐大的業務系統拆分成一些更小粒度且獨立部署的 Rest 服務。但是這個過程,具體應該怎麼做?現有的條件下到底要不要做微服務?服務拆分成什麼粒度才是合適的?遺留的老系統需要如何考慮重構改造?有哪些坑需要我們注意?系統怎麼在分散式服務下實現數據的一致性和服務的高可用可伸縮?拆分的過程中系統數量增多,測試、部署、運維、監控,又應該如何處理?

本文將從這些問題的深度分析出發,闡述微服務架構落地的一些設計原則和利弊取捨,結合微服務架構過程的很多最佳實踐經驗,希望給讀者帶來一定的啟發和思考,避免在實際應用過程中走彎路,能夠多快好省的落地實現微服務架構。內容涉及:微服務架構的發展過程簡介微服務架構的特點與常見特性使用微服務架構的常見技術與簡單示例微服務架構存在的一些問題

如何合理拆分微服務

遺留系統應該如何改造怎麼考慮拆分後的數據一致性系統和服務的高可用可伸縮如何實現拆分過程的測試和部署如何處理拆分後的運維和監控如何處理

2、什麼是Dubbo

Dubbo是一個分散式服務框架,用於多個系統間的相互調用的。基於這個功能,然後衍生出服務的註冊、發現,監控、路由、治理,多協議支持等等。官網首頁介紹:

Apache Dubbo |?d?b??| 是一款高性能、輕量級的開源Java RPC框架,它提供了三大核心能力:面向介面的遠程方法調用,智能容錯和負載均衡,以及服務自動註冊和發現。

簡單的說,就是基於dubbo可以非常簡單的、透明地在不同的系統間實現服務之間的調用,並且通過相關的工具,我們能很好的把這些東西管理起來。同時,Dubbo的中文文檔,以及網上的介紹文章和分析材料,也是開源技術里最多的。

分散式服務化領域,Dubbo是國內開源技術在世界範圍的一面旗幟。

Dubbo的歷史可以參考下面回答的前半部分:

現在有什麼好的方案替換zookeeper+ dubbo嗎??

www.zhihu.com

Dubbo的更多信息參考dubbo重新維護以後我的一個回復:

dubbo在Github上為什麼不更新了??

www.zhihu.com

3、Dubbo是不是微服務架構

通過第一部分的分析,我們知道,微服務架構,不是一個具體的框架或者類庫。但是我們可以用分散式服務化的框架,結合我們的業務,用微服務架構的指導思想去實現我們的具體系統。

從這個角度來說,以下的框架都是可以選的:

Java平台的:

有些大家應該聽說過,不多說。Quarkus和Helidon比較新,也很有意思,介紹參見:

如何看待RedHat開源的Quarkus微服務框架? - kimmking的回答 - 知乎

如何看待RedHat開源的Quarkus微服務框架??

www.zhihu.com

Golang的:

NodeJS的:

等等。

框架的選擇,可以參考:

為何說spring cloud適合中小型項目,而不適合大型項目??

www.zhihu.com

以上。

:)


Dubbo是一個RPC框架,可以用於微服務架構實踐之中。但絕不是用了Dubbo就是在做微服務了,同樣的這對於Spring Cloud而言也一眼的,因為微服務架構不僅包含技術上的選擇,也包含了文化、組織等多方面的變革。

具體可以看看Martin Fowler關於微服務的文章微服務(Microservices)中文版 ,附上我的筆記《微服務》九大特性重讀筆記 ,僅供參考~


謝邀。

什麼是Dubbo?

Dubbo 是一個分散式服務框架,致力於提供高性能和透明化的 RPC 遠程服務調用方案,以及 SOA 服務治理方案。簡單的說,Dubbo 就是個服務框架,說白了就是個遠程服務調用的分散式框架

Dubbo 框架

模塊註解:

流程詳解:

Dubbo 集群容錯

面對服務消費方,當業務邏輯中需要調用一個服務時,真正調用的其實是 Dubbo 創建的一個 Proxy,該 Proxy 會把調用轉化成調用指定的 Invoker(Cluster 將 Directory 中的多個 Invoker 偽裝成一個 Invoker,對上層透明,偽裝過程包含了容錯邏輯,調用失敗後,重試另一個(通過 LoadBalance),Invoker 封裝了 Provider 地址及 Service 介面信息)。而在這一系列的委託調用的過程里就完成了服務治理的邏輯,最終完成調用。

Dubbo 特點

Dubbo 發展歷程

Dubbo 負責人說明(重啟維護是接受的採訪):

阿里內部使用 HSF,原因業務屬性規模有關。

這裡就不得不提到目前的一些文章在談到微服務的時候總是拿 Spring Cloud 和 Dubbo 來對比,需要強調的是 Dubbo 未來的定位並不是要成為一個微服務的全面解決方案,而是專註在 RPC 領域,成為微服務生態體系中的一個重要組件。至於大家關注的微服務化衍生出的服務治理需求,我們會在 Dubbo 積極適配開源解決方案,甚至啟動獨立的開源項目予以支持。受眾主要來自國內各友商以及個人開發者,希望將來能夠將用戶拓展到全球,代表國人在 RPC 領域與 gRPC(基於 HTTP 2.0)、Finagle 等競爭。

Dubbo 一些優點

Dubbo 一些問題

所以dubbo也算是微服務架構。

來源:博客園

作者:田園裡的蟋蟀

原文:Java 微服務框架選型(Dubbo 和 Spring Cloud?)

發佈於 2020-02-24繼續瀏覽內容知乎發現更大的世界打開Chrome繼續王者程序猿

這麼說吧,dubbo可以是微服務的一部分,但不能以偏概全說dubbo就是微服務,微服務涉及的面比較廣,比如服務發現,服務治理,服務網關,服務監控,鏈路追蹤等等,可以用到的組件也比較多,而dubbo最多只能說是專註於服務治理的組件,所以從這一點上來看,可替代它的技術也是相當之多的,比如一系列rpc框架都可以


這麼說吧,dubbo可以是微服務的一部分,但不能以偏概全說dubbo就是微服務,微服務涉及的面比較廣,比如服務發現,服務治理,服務網關,服務監控,鏈路追蹤等等,可以用到的組件也比較多,而dubbo最多只能說是專註於服務治理的組件,所以從這一點上來看,可替代它的技術也是相當之多的,比如一系列rpc框架都可以


不是 微服務架構的範圍有點廣 dubbo只不過是個RPC框架 提供了一種微服務中的通信及服務發現的功能


不是,他是RPC框架,要想構建微服務框架需要在dubbo基礎上進行擴展。


推薦閱讀:
相关文章