日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

Dubbo工作流程

發布時間:2024/6/21 综合教程 31 生活家
生活随笔 收集整理的這篇文章主要介紹了 Dubbo工作流程 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、dubbo整體架構

其中Service 和 Config 層為 API,對應服務提供方來說是使用ServiceConfig來代表一個要發布的服務配置對象,對應服務消費方來說ReferenceConfig代表了一個要消費的服務的配置對象。可以直接初始化配置類,也可以通過 spring 解析配置生成配置類。
proxy 服務代理層:擴展接口為 ProxyFactory,dubbo實現的SPI主要JavassistProxyFactory(默認使用)和JdkProxyFactory,用來對服務提供方和服務消費方的服務進行代理。
registry 注冊中心層:封裝服務地址的注冊與發現,擴展接口為 Registry , RegistryService,Dubbo提供的擴展接口實現為ZookeeperRegistry,RedisRegistry,MulticastRegistry,DubboRegistry。
擴展接口RegistryFactory,dubbo提供的擴展接口實現DubboRegistryFactory,DubboRegistryFactory,RedisRegistryFactory,ZookeeperRegistryFactory。
cluster 路由層:封裝多個提供者的路由及負載均衡,并橋接注冊中心,
擴展接口為 Cluster , Directory , Router ,LoadBalance。
monitor 監控層:RPC 調用次數和調用時間監控,擴展接口為 MonitorFactory , Monitor , MonitorService。
protocol 遠程調用層:封將 RPC 調用,擴展接口為 Protocol , Invoker , Exporter。
exchange 信息交換層:封裝請求響應模式,同步轉異步,擴展接口為 Exchanger , ExchangeChannel ,ExchangeClient , ExchangeServer
transport 網絡傳輸層:抽象 mina 和 netty 為統一接口擴展接口為 Channel , Transporter , Client , Server , Codec
serialize 數據序列化層:可復用的一些工具,擴展接口為 Serialization ,ObjectInput , ObjectOutput , ThreadPool

二、dubbo服務發布原理

  首先 ServiceConfig 類拿到對外提供服務的實際類 ref(如:UserServiceImpl),然后通過 ProxyFactory 類的 getInvoker 方法使用 ref 生成一個AbstractProxyInvoker 實例,到這一步就完成具體服務到 Invoker 的轉化。

  接下來就是 Invoker 轉換到 Exporter 的過程。Dubbo 處理服務暴露的關鍵就在 Invoker 轉換到 Exporter 的過程,上圖中的紅色部分。

  Dubbo 協議的 Invoker 轉為 Exporter 發生在 DubboProtocol 類的 export 方法,它主要是打開創建一個Netty Server 偵聽服務,并接收客戶端發來的各種請求,通訊細節由 Dubbo 自己實現,然后注冊服務到服務注冊中心

三、dubbo消費原理

  首先 ReferenceConfig 類的 init 方法調用 Protocol 的 refer 方法生成 Invoker 實例(如上圖中的紅色部分),這是服務消費的關鍵。接下來把Invoker 轉換為客戶端需要的接口。

  dubbo協議的invoker轉換為客戶端需要的接口是發生在DubboProtocol的refer方法,他主要是創建一個netty client 鏈接服務提供者,通訊細節由 Dubbo 自己實現。

四、dubbo原理總結

節點角色說明:

Provider: 暴露服務的服務提供方。
Consumer: 調用遠程服務的服務消費方。
Registry: 服務注冊與發現的注冊中心。
Monitor: 統計服務的調用次調和調用時間的監控中心。
Container: 服務運行容器。

調用關系說明:

服務容器負責啟動,加載,運行服務提供者。
服務提供者在啟動時,向注冊中心注冊自己提供的服務。
服務消費者在啟動時,向注冊中心訂閱自己所需的服務。
注冊中心返回服務提供者地址列表給消費者,如果有變更,注冊中心將基于長連接推送變更數據給消費者。
服務消費者,從提供者地址列表中,基于軟負載均衡算法,選一臺提供者進行調用,如果調用失敗,再選另一臺調用。
服務消費者和提供者,在內存中累計調用次數和調用時間,定時每分鐘發送一次統計數據到監控中心。

registry(configServer)

  注冊中心,和每個Server/Client之間會作一個實時的心跳檢測(因為它們都是建立的Socket長連接),比如幾秒鐘檢測一次。收集每個Server提供的服務的信息,每個Client的信息,整理出一個服務列表

  當某個Server不可用,那么就更新受影響的服務對應的serverAddressList,即把這個Server從serverAddressList中踢出去(從地址列表中刪除),同時將推送serverAddressList給這些受影響的服務的clientAddressList里面的所有Client

  新加一個Server時,由于它會主動與ConfigServer取得聯系,而ConfigServer又會將這個信息主動發送給Client,所以新加一個Server時,只需要啟動Server,然后幾秒鐘內,Client就會使用上它提供的服務

consumer(client)

  調用服務的機器,每個Client啟動時,主動與ConfigServer建立Socket長連接,并將自己的IP等相應信息發送給ConfigServer。
  Client在使用服務的時候根據服務名稱去ConfigServer中獲取服務提供者信息(這樣ConfigServer就知道某個服務是當前哪幾個Client在使用),Client拿到這些服務提供者信息后,與它們都建立連接,后面就可以直接調用服務了,當有多個服務提供者的時候,Client根據一定的規則來進行負載均衡,如輪詢,隨機,按權重等。
  一旦Client使用的服務它對應的服務提供者有變化(服務提供者有新增,刪除的情況),ConfigServer就會把最新的服務提供者列表推送給Client,Client就會依據最新的服務提供者列表重新建立連接,新增的提供者建立連接,刪除的提供者丟棄連接

provider(server)

  真正提供服務的機器,每個Server啟動時,主動與ConfigServer建立Scoket長連接,并將自己的IP,提供的服務名稱,端口等信息直接發送給ConfigServer,ConfigServer就會收集到每個Server提供的服務的信息。

優點:

只要在Client和Server啟動的時候,ConfigServer是好的,服務就可調用了,如果后面ConfigServer掛了,那只影響ConfigServer掛了以后服務提供者有變化,而Client還無法感知這一變化。
Client每次調用服務是不經過ConfigServer的,Client只是與它建立聯系,從它那里獲取提供服務者列表而已
調用服務-負載均衡:Client調用服務時,可以根據規則在多個服務提供者之間輪流調用服務。
服務提供者-容災:某一個Server掛了,Client依然是可以正確的調用服務的,當前提是這個服務有至少2個服務提供者,Client能很快的感知到服務提供者的變化,并作出相應反應。
服務提供者-擴展:添加一個服務提供者很容易,而且Client會很快的感知到它的存在并使用它。

總結

以上是生活随笔為你收集整理的Dubbo工作流程的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 国产香蕉尹人视频在线 | 亚洲人色| a在线免费观看 | 美女xx00| 欧洲综合色| 一区二区三区在线观看视频 | 欧美性猛交乱大交xxxx | 国产小视频一区 | 日本中文在线 | 国产系列在线观看 | 黄色小视频免费 | 在线看片一区二区 | 人妻久久一区二区三区 | 国产真实交换夫妇视频 | 国产乱码精品一区二区三区不卡 | 人人爽人人香蕉 | 国内自拍99 | 亚洲欧美网 | 德国经典free性复古xxxx | 久久精品久久久精品美女 | 国产av一区精品 | 蜜桃av影视| 婷婷色中文字幕 | 婷婷激情小说网 | 夜夜夜夜骑 | 久久国产精品免费 | 一级伦理片 | 老女人毛片 | 久久久精品人妻一区二区三区色秀 | 色姑娘天天操 | 国产视频三级 | 懂爱av | 少妇一区二区三区 | 天天插天天操 | 亚洲区小说区 | 天天色亚洲 | 久久国产劲爆∧v内射 | 性欧美大战久久久久久久久 | 日韩三级久久 | 成人深夜福利视频 | 亚洲免费观看高清完整版在线 | 国产精品一二三区 | 久久噜| 欧美乱妇日本无乱码特黄大片 | 999在线视频| 亚洲黄在线 | 什么网站可以看毛片 | 性色av网站 | 人人爱国产| 澳门av网站 | 中文字幕在线观看一区二区 | 琪琪秋霞午夜被窝电影网 | 97影院| 国产欧美在线一区 | 午夜寂寞剧场 | 动漫涩涩免费网站在线看 | 三上悠亚人妻中文字幕在线 | 国产一级不卡毛片 | 日本免费黄色网址 | 天天操国产| 欧洲av无码放荡人妇网站 | 成人免费视频一区二区三区 | 国产成人91精品 | av女人的天堂 | 一级激情视频 | 伊人久久精品视频 | 亚洲福利在线视频 | 午夜在线观看视频 | 日本在线免费观看视频 | 97自拍视频| jizz国产在线 | 神马一区二区三区 | 无遮挡在线观看 | 日本极品丰满ⅹxxxhd | 肉色丝袜脚交一区二区 | 9色av | 综合久久一区二区 | 51精品国产人成在线观看 | 香蕉在线观看视频 | 亚洲AV无码成人精品一区 | 亚洲av无码一区二区三区在线观看 | 污版视频在线观看 | 成人免费公开视频 | 黄色三级在线 | 久久久久久99精品久久久 | 少妇高潮露脸国语对白 | 男男av网站| 欧美在线一卡 | 日韩欧美字幕 | 黄色观看网站 | 久久尤物 | 人成网站在线观看 | 久久精品在线播放 | 欧美日韩少妇精品 | aa在线视频 | 妖精视频在线观看 | 婷婷综合网站 | 丰满少妇一区二区 | 中文字幕人妻无码系列第三区 |