dubbo原理

1、RPC原理html

一次完整的RPC調用流程(同步調用,異步另說)以下:
一、服務消費方(client)調用以本地調用方式調用服務;
二、client stub接收到調用後負責將方法、參數等組裝成可以進行網絡傳輸的消息體;
三、client stub找到服務地址,並將消息發送到服務端;
四、server stub收到消息後進行解碼;
五、server stub根據解碼結果調用本地的服務;
六、本地服務執行並將結果返回給server stub;
七、server stub將返回結果打包成消息併發送至消費方;
八、client stub接收到消息,並進行解碼;
九、服務消費方獲得最終結果。
RPC框架的目標就是要2~8這些步驟都封裝起來,這些細節對用戶來講是透明的,不可見的。spring

2、netty通訊原理apache

Netty是一個異步事件驅動的網絡應用程序框架, 用於快速開發可維護的高性能協議服務器和客戶端。它極大地簡化並簡化了TCP和UDP套接字服務器等網絡編程。
BIO:(Blocking IO)編程

NIO (Non-Blocking IO)服務器

Selector 通常稱 爲選擇器 ,也能夠翻譯爲 多路複用器,
Connect(鏈接就緒)、Accept(接受就緒)、Read(讀就緒)、Write(寫就緒)
Netty基本原理:網絡

 3、dubbo原理併發

一、dubbo原理 -框架設計 負載均衡

config 配置層:對外配置接口,以 ServiceConfig, ReferenceConfig 爲中心,能夠直接初始化配置類,也能夠經過 spring 解析配置生成配置類
proxy 服務代理層:服務接口透明代理,生成服務的客戶端 Stub 和服務器端 Skeleton, 以 ServiceProxy 爲中心,擴展接口爲 ProxyFactory
registry 註冊中心層:封裝服務地址的註冊與發現,以服務 URL 爲中心,擴展接口爲 RegistryFactory, Registry, RegistryService
cluster 路由層:封裝多個提供者的路由及負載均衡,並橋接註冊中心,以 Invoker 爲中心,擴展接口爲 Cluster, Directory, Router, LoadBalance
monitor 監控層:RPC 調用次數和調用時間監控,以 Statistics 爲中心,擴展接口爲 MonitorFactory, Monitor, MonitorService
protocol 遠程調用層:封裝 RPC 調用,以 Invocation, Result 爲中心,擴展接口爲 Protocol, Invoker, Exporter
exchange 信息交換層:封裝請求響應模式,同步轉異步,以 Request, Response 爲中心,擴展接口爲 Exchanger, ExchangeChannel, ExchangeClient, ExchangeServer
transport 網絡傳輸層:抽象 mina 和 netty 爲統一接口,以 Message 爲中心,擴展接口爲 Channel, Transporter, Client, Server, Codec
serialize 數據序列化層:可複用的一些工具,擴展接口爲 Serialization, ObjectInput, ObjectOutput, ThreadPool框架

二、dubbo原理 -啓動解析、加載配置信息異步

三、dubbo原理 -服務暴露

四、dubbo原理 -服務引用

五、dubbo原理 -服務調用

詳見官方文檔:http://dubbo.apache.org/zh-cn/docs/dev/design.html

相關文章
相關標籤/搜索