
翟陸續
Dubbo是阿里巴巴開發的一個開源的高性能、高可用、可擴展的分佈式RPC調用框架,致力於提供高性能和透明化的 RPC 遠程調用服務解決方案。作爲阿里巴巴 SOA 服務化治理方案的核心框架,目前已進入 Apache 孵化器項目。在單體應用時,不同業務模塊部署在同一個JVM 進程內,這時通過本地調用就可以解決不同業務模塊之間的相互引用;但在多體應用時,不同業務模塊大多部署到不同的機器上,這時一個高效、穩定的RPC框架就顯得特別重要了。Apache Dubbo 作爲阿里巴巴開源的分佈式RPC 框架,在進入Apache 孵化器項目後現已畢業,相信在開源社區的不斷貢獻下,它會成爲RPC 框架中的佼佼者。本書是對Apache Dubbo 的使用以及內核原理的深度剖析,分爲三部分:第一部分爲基礎篇,首先從整體上講解使用Dubbo 搭建的系統由哪些模塊組成,各模塊相互之間的調用關係是怎麼樣的,然後基於本書的Demo 講解如何使用Dubbo ;第二部分爲高級篇,主要講解Dubbo 框架內部實現原理,包含支撐Dubbo框架的適配器類原理、動態編譯原理、增強SPI 原理、消費端的泛化調用實現原理、消費端異步調用與服務提供端的異步執行、Dubbo 框架的線程模型、消費端負載均衡策略、消費端集羣容錯策略、併發控制原理、Dubbo 網絡協議等;第三部分爲實踐篇,主要探討如何使用Arthas 和一些Demo 爲研究Dubbo 框架原理提供方便,並且講解如何基於CompletableFuture 和Netty 模擬RPC 同步與純異步調用。本書將原理與實踐相結合,由淺入深、通俗易懂地講解了Dubbo 框架的使用及內核原理實現,適合Java 中高級研發工程師,以及對RPC 框架技術感興趣,希望探究RPC 框架內部實現原理的人員閱讀。
兩個半月前第一次讀這本書的時候覺得寫得太草,跟不上。(可能一開始spi部分消耗了很多精力,那段時間狀態也不好) 幾天前重新讀,意外發現能看懂了,而且覺得作者寫得很細,該講到的源碼都講到了,能讀懂而且獲益匪淺。 這本書從spi開始講,到服務提供者啓動的過程,啓動netty,註冊到zookeeper,生成代理。到消費者啓動的過程,zookeeper notify回來的invoker放進一個口袋,用loadbalance找一個用,然後connect。dubbo的核心其實就是服務治理的這部分。然後繼續講dubbo的各種filter,線程模型,異步等。慢慢看完會覺得收穫很大… 大神們寫框架就好像在構造一件藝術品,每個地方都透露着設計的痕跡,而我顯然還不能領會全局的設計……不過暫時也夠用了😂
dubbo作爲一個優秀的rpc框架,結構設計和代碼組織都很工整,作爲源碼研究來說,複雜度也還可以。本書算是花心思把源碼方方面面分析透了,值得配合着研究學習。
阿里大佬寫的牛匹的庫配合阿里大佬寫的牛匹的書,這學起來它不香嗎? 老實說,Dubbo 的源碼確實挺複雜的,畢竟做了太多的事情。
包含dubbo的架構和調用鏈路,以及代碼例子。
市面上講dubbo的書並不多,這是其中一本。結合源碼的方式講解了dubbo的各個組件,邏輯清晰,還提到了dubbo的異步化服務,值得一讀。
讀了兩遍,第一遍比較簡單的看了下,讀完之後大概對dubbo的整體架構以及各方面功能的實現有了大致的瞭解,第二遍是邊看書邊在源碼中跑單元測試打斷點中看完的,第二遍讀完後對dubbo纔有了更加細緻的認識。 dubbo體系太過龐大,僅憑本書講解的內容想要對很多細節層面的實現有深層次的認識是不可能的,只有跟着書中的講解加上程序斷點一步一步調試才能對服務註冊、服務發現、SPI、負載均衡以及整個rpc請求全流程有深刻的認識。 個人看來,想要充分掌握dubbo,需要先從抽象層面理解清楚幾個關鍵接口的設計,如Invoker,Filter、LoadBalance、Exporter、Protocol等接口的設計,理解每個接口爲什麼要這麼設計,爲什麼接口中需要這幾個方法,爲什麼方法的入參是這幾個對象,在腦中理了一遍之後,跟着書中的章節一個一個的拿着源碼中相應章節的單元測試打斷點過一遍流程,這樣就能對dubbo的核心功能有很深的認識了,當然,打斷點過流程是一個枯燥卻又不能急躁的過程,由於有些代碼是動態生成的,以及框架中用了大量裝飾器模式,所以過流程的時候難免會有一些不理解,這時候也是深刻認識dubbo最重要的時候,慢慢看,慢慢走,不急躁,把每個重要變量的來源搞清楚,把重要的邏輯理清楚,多看幾遍之後會有醍醐灌頂的感覺,不僅僅是dubbo,任何設計優秀的框架都可以用這種方式領悟。
深入淺出地從基本用法講起,然後逐一剖析了Dubbo的架構、擴展、服務的註冊與發現、路由、集羣、線程、協議與網絡等方方面面。 基本上涵蓋了Dubbo這個服務框架最主要的部分。對於想深入到Dubbo源碼的讀者有着相當大的幫助。 最後,作者介紹瞭如何使用Arthas來幫助理解Dubbo的工作,如何利用Dubbo的SPI擴展機制來實現自定義的負載均衡策略。
先說優點:dubbo demo使用的最佳實踐,適用於一個想了解dubbo整體流程,並將之跑起來,可以生產,可以消費。這個完全沒有問題的。 將各個流程梳理的都比較清晰,闡述流程本身是什麼 缺點:沒有闡述流程爲什麼這樣安排。深度略淺。
會有一個比較系統的瞭解,比官方文檔還是要細緻。比博客來說更正確。
帶着問題來看的,看後對dubbo的整體層次有加深,基本原理講的中規中矩,平時應用時可以做參考手冊用來開拓思路。