【Dubbo 源碼解析】01_Dubbo 設計簡介
Dubbo 設計簡介
Dubbo 采用 Microkernel + Plugin (微內核 + 插件)模式,Microkernel 只負責組裝 Plugin,Dubbo 自身的功能也是通過擴展點實現的,也就是 Dubbo 的所有功能點都可被用戶自定義擴展所替換。
Dubbo 的核心領域模型
-
Protocol 是服務域,它是 Invoker 暴露和引用的主功能入口,它負責 Invoker 的生命周期管理。
-
Invoker 是實體域,它是 Dubbo 的核心模型,其它模型都向它靠擾,或轉換成它,它代表一個可執行體,可向它發起 invoke 調用,它有可能是一個本地的實現,也可能是一個遠程的實現,也可能一個集群實現。
-
Invocation 是會話域,它持有調用過程中的變量,比如方法名,參數等。
整體設計
參考: http://dubbo.apache.org/zh-cn/docs/dev/design.html
【Dubbo 源碼解析】01_Dubbo 設計簡介
相關推薦
【Dubbo 源碼解析】01_Dubbo 設計簡介
toc inf 參數 遠程 lin d-link jpg prot 定義 Dubbo 設計簡介 Dubbo 采用 Microkernel + Plugin (微內核 + 插件)模式,Microkernel 只負責組裝 Plugin,Dubbo 自身的功能也是通過擴展點實現
【Dubbo 源碼解析】06_Dubbo 服務調用
阻塞 發現 cluster iss 長連接 lean NPU void lib Dubbo 服務調用 根據上圖,可以看出,服務調用過程為: Consumer 端的 Proxy 調用 Cluster 層選擇集群中的某一個 Invoker(負載均衡)
【Dubbo 源碼解析】02_Dubbo SPI
小寫 throw 擴展點 作用 http bstr zh-cn line isa Dubbo SPI:(version:2.6.*) Dubbo 微內核 + 插件 模式,得益於 Dubbo SPI 。其中 ExtentionLoader是 Dubbo SPI 最核心的類,
【Dubbo 源碼解析】07_Dubbo 重試機制
version ast 查看 error enabled pre div set time Dubbo 重試機制 通過前面 Dubbo 服務發現&引用 的分析,我們知道,Dubbo 的重試機制是通過 com.alibaba.dubbo.rpc.cluster.su
【JUC源碼解析】ConcurrentLinkedQueue
阻塞 操作 turn == 技術 next .com 源碼解析 否則 簡介 ConcurrentLinkedQueue是一個基於鏈表結點的無界線程安全隊列。 概述 隊列順序,為FIFO(first-in-first-out);隊首元素,是當前排隊時間最長的;隊尾元素,
【JUC源碼解析】ConcurrentSkipListMap
sde 空指針 順序 pri 不一致 前驅 values dex warning 簡介 基於跳表,支持並發,有序的哈希表。 跳表 紅色路徑為尋找結點F。 拿空間換時間,時間復雜度,O(nlogn). 源碼分析 內部類 Node 屬性 1
【JUC源碼解析】ScheduledThreadPoolExecutor
技術 inf del timer 默認 執行 task 情況下 多線程 簡介 它是一個線程池執行器(ThreadPoolExecutor),在給定的延遲(delay)後執行。在多線程或者對靈活性有要求的環境下,要優於java.util.Timer。 提交的任務在執行之前
【spring源碼學習】spring的AOP面向切面編程的實現解析
內部 遠程調用 關註 add aps 文件 uem 連接 row 一:Advice(通知)(1)定義在連接點做什麽,為切面增強提供織入接口。在spring aop中主要描述圍繞方法調用而註入的切面行為。(2)spring定義了幾個時刻織入增強行為的接口??=>org.
【Dubbo源碼閱讀系列】服務暴露之遠程暴露
3ds 不難 [] wrapper 重點 client 工廠 特定 講解 引言 什麽叫 遠程暴露 ?試著想象著這麽一種場景:假設我們新增了一臺服務器 A,專門用於發送短信提示給指定用戶。那麽問題來了,我們的 Message 服務上線之後,應該如何告知調用方服務器,服務器 A
【Dubbo源碼閱讀系列】之遠程服務調用(上)
res 簡單的 eric 執行流程 交互 windbg 模式 face voc 今天打算來講一講 Dubbo 服務遠程調用。筆者在開始看 Dubbo 遠程服務相關源碼的時候,看的有點迷糊。後來慢慢明白 Dubbo 遠程服務的調用的本質就是動態代理模式的一種實現。本地消費者無
【MyBatis源碼分析】insert方法、update方法、delete方法處理流程(上篇)
times database connect 環境 enable clas 它的 java對象 ace 打開一個會話Session 前文分析了MyBatis將配置文件轉換為Java對象的流程,本文開始分析一下insert方法、update方法、delete方法處理的流程,至
【spring源碼學習】spring的IOC容器之BeanFactoryPostProcessor接口學習
時機 process roc sta 自動 註解 lis nbsp factor 【一】org.springframework.beans.factory.config.BeanFactoryPostProcessor接口==>該接口實現方法的執行時機:該接口void
【spring源碼學習】spring的遠程調用實現源碼分析
數據 編碼方式 ria date 技術 color nbsp mvc err 【一】spring的遠程調用提供的基礎類 (1)org.springframework.remoting.support.RemotingSupport ===>spring提供實現的遠程調
【spring源碼學習】spring配置的事務方式是REQUIRED,但業務層拋出TransactionRequiredException異常問題
uncaught easy lap api tee class odi lose gre (1)spring拋出異常的點:org.springframework.orm.jpa.EntityManagerFactoryUtils public static DataAc
dubbo源碼解析-spi(3)
做的 property 部分 修飾 末尾 not clas ioc cto 前言 在上一篇的末尾,我們提到了dubbo的spi中增加了IoC和AOP的功能.那麽本篇就講一下這個增加的IoC,spi部分預計會有四篇,因為這東西實在是太重要了.溫故而知新,我們先來回顧一下,我們
dubbo源碼解析-spi(二)
gets tile load type rec nfa 收獲 shm 介紹 前言 上一篇簡單的介紹了spi的基本一些概念,在末尾也提到了,dubbo對jdk的spi進行了一些改進,具體改進了什麽,來看看文檔的描述 JDK 標準的 SPI 會一次性實例化擴展點所有實現,如果
【MatConvNet代碼解析】 vl_nnsoftmaxloss
eight ear img src vnet com 會有 分類 bubuko 背景知識:http://deeplearning.stanford.edu/wiki/index.php/Softmax%E5%9B%9E%E5%BD%92 假設softmax層的輸入(sof
【Canal源碼分析】數據傳輸協議
shutdown nal odi error comm default enc repeated head Canal的數據傳輸有兩塊,一塊是進行binlog訂閱時,binlog轉換為我們所定義的Message,第二塊是client與server進行TCP交互時,傳輸的TC
【Canal源碼分析】TableMetaTSDB
啟動 尋找 進行 lib 保存 AD orien strip 介紹 這是Canal在新版本引入的一個內容,主要是為了解決由於歷史的DDL導致表結構與現有表結構不一致,導致的同步失敗的問題。采用的是Druid和Fastsql,來記錄表結構到DB中,如果需要進行回滾時,得從DB
【JDK源碼分析】通過源碼徹底理解ReentrantLock顯示鎖
線程封裝 rac syn next 之前 線程 vat 喚醒 current 前言ReentrantLock和synchronized一樣是一個可重入的互斥鎖,但ReentrantLock功能更強大,它提供了非公平和公平兩種鎖爭用策略供使用者選擇,而synchronized