国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

一篇文章帶你深入了解Dubbo

原創
開發 架構 開發工具
隨著互聯網的發展,網站應用的規模不斷擴大,常規的垂直應用架構已無法應對,分布式服務架構以及流動計算架構勢在必行,亟需一個治理系統確保架構有條不紊的演進。

【51CTO.com原創稿件】一、產生的背景

隨著互聯網的發展,網站應用的規模不斷擴大,常規的垂直應用架構已無法應對,分布式服務架構以及流動計算架構勢在必行,亟需一個治理系統確保架構有條不紊的演進。下面我們用一個圖來具體說明架構和開發框架的演進過程。

 

  • 單一應用架構

當網站流量很小時,只需一個應用,將所有功能都部署在一起,以減少部署節點和成本。此時,用于簡化增刪改查工作量的數據訪問框架(ORM)是關鍵。

  • 垂直應用架構

當訪問量逐漸增大,單一應用增加機器帶來的加速度越來越小,將應用拆成互不相干的幾個應用,以提升效率。此時,用于加速前端頁面開發的Web框架(MVC)是關鍵。

  • 分布式服務架構

當垂直應用越來越多,應用之間交互不可避免,將核心業務抽取出來,作為獨立的服務,逐漸形成穩定的服務中心,使前端應用能更快速的響應多變的市場需求。此時,用于提高業務復用及整合的分布式服務框架(RPC)是關鍵。

  • 流動計算架構

當服務越來越多,容量的評估,小服務資源的浪費等問題逐漸顯現,此時需增加一個調度中心基于訪問壓力實時管理集群容量,提高集群利用率。此時,用于提高機器利用率的資源調度和治理中心(SOA)是關鍵。

二、服務治理的需求

微服務架構是互聯網很熱門的話題,是互聯網技術發展的必然結果。它提倡將單體應用程序劃分成一組若干小的服務,服務之間互相協調、互相配合,為用戶提供最終價值。

單體應用程序拆分成微服務后,服務治理是關鍵。那么有沒有好的服務治理方案呢?答案是有的,而且很多人都在用這個框架,它就是Dubbo。Dubbo是一個帶有服務治理功能的RPC框架,提供了一套較為完整的服務治理方案,所以企業如果要實現服務化的話,Dubbo 是很好的一個選擇。這里簡單介紹一下Dubbo服務治理的幾個基本需求。

 

在大規模服務化之前,應用可能只是通過 RMI 或 Hessian 等工具,簡單的暴露和引用遠程服務,通過配置服務的URL地址進行調用,通過 F5 等硬件進行負載均衡。

當服務越來越多時,服務 URL 配置管理變得非常困難,F5 硬件負載均衡器的單點壓力也越來越大。此時需要一個服務注冊中心,動態的注冊和發現服務,使服務的位置透明。并通過在消費方獲取服務提供方地址列表,實現軟負載均衡和 Failover,降低對 F5 硬件負載均衡器的依賴,也能減少部分成本。

當進一步發展,服務間依賴關系變得錯蹤復雜,甚至分不清哪個應用要在哪個應用之前啟動,架構師都不能完整的描述應用的架構關系。這時,需要自動畫出應用間的依賴關系圖,以幫助架構師理清關系。

接著,服務的調用量越來越大,服務的容量問題就暴露出來,這個服務需要多少機器支撐?什么時候該加機器? 為了解決這些問題,第一步,要將服務現在每天的調用量,響應時間,都統計出來,作為容量規劃的參考指標。其次,要可以動態調整權重,在線上,將某臺機器的權重一直加大,并在加大的過程中記錄響應時間的變化,直到響應時間到達閾值,記錄此時的訪問量,再以此訪問量乘以機器數反推總容量。

以上是 Dubbo 最基本的幾個需求。簡單的說,Dubbo就是個服務調用的框架,如果沒有分布式的需求,其實是不需要用的,只有在分布式的時候,才有使用Dubbo這樣的分布式服務框架的需求,并且本質上是個服務調用的東東。其核心部分包含:

1. 遠程通訊:提供對多種基于長連接的NIO框架抽象封裝,包括多種線程模型、序列化以及“請求-響應”模式的信息交換方式。

2. 集群容錯:提供基于接口方法的透明遠程過程調用,包括多協議支持以及軟負載均衡,失敗容錯、地址路由、動態配置等集群支持。

3. 自動發現:基于注冊中心目錄服務,使服務消費方能動態的查找服務提供方,使地址透明,使服務提供方可以平滑增加或減少機器。

三、Dubbo的架構和特點

說完產生的背景和需求后,下面具體談下Dubbo的總體架構以及Dubbo的特點。

 

Dubbo總體架構設計一共劃分了10層,而最上面的Service層是留給實際想要使用Dubbo開發分布式服務的開發者實現業務邏輯的接口層。圖中左邊淡藍背景的為服務消費方使用的接口,右邊淡綠色背景的為服務提供方使用的接口,位于中軸線上的為雙方都用到的接口。

下面,結合Dubbo官方文檔,理解一下總體架構分層中,各個層次的設計要點:

1. 服務接口層(Service):該層是與實際業務邏輯相關的,根據服務提供方和服務消費方的業務設計對應的接口和實現。

2. 配置層(Config):對外配置接口,以ServiceConfig和ReferenceConfig為中心,可以直接new配置類,也可以通過Spring解析配置生成配置類。

3. 服務代理層(Proxy):服務接口透明代理,生成服務的客戶端Stub和服務器端Skeleton,以ServiceProxy為中心,擴展接口為ProxyFactory。

4. 服務注冊層(Registry):封裝服務地址的注冊與發現,以服務URL為中心,擴展接口為RegistryFactory、Registry和RegistryService。可能沒有服務注冊中心,此時服務提供方直接暴露服務。

5. 集群層(Cluster):封裝多個提供者的路由及負載均衡,并橋接注冊中心,以Invoker為中心,擴展接口為Cluster、Directory、Router和LoadBalance。將多個服務提供方組合為一個服務提供方,實現對服務消費方透明,只需要與一個服務提供方進行交互。

6. 監控層(Monitor):RPC調用次數和調用時間監控,以Statistics為中心,擴展接口為MonitorFactory、Monitor和MonitorService。

7. 遠程調用層(Protocol):封將RPC調用,以Invocation和Result為中心,擴展接口為Protocol、Invoker和Exporter。Protocol是服務域,它是Invoker暴露和引用的主功能入口,它負責Invoker的生命周期管理。Invoker是實體域,它是Dubbo的核心模型,其他模型都向它靠擾,或轉換成它,它代表一個可執行體,可向它發起invoke調用。它有可能是一個本地的實現,也可能是一個遠程的實現,也可能是一個集群實現。

8. 信息交換層(Exchange):封裝請求響應模式,同步轉異步,以Request和Response為中心,擴展接口為Exchanger、ExchangeChannel、ExchangeClient和ExchangeServer。

9. 網絡傳輸層(Transport):抽象mina和netty為統一接口,以Message為中心,擴展接口為Channel、Transporter、Client、Server和Codec。

10. 數據序列化層(Serialize):可復用的一些工具,擴展接口為Serialization、 ObjectInput、ObjectOutput和ThreadPool。

從上圖可以看出,Dubbo對于服務提供方和服務消費方,從框架的10層中分別提供了各自需要關心和擴展的接口,構建整個服務生態系統(服務提供方和服務消費方本身就是一個以服務為中心的)。

下圖是從Dubbo官網直接拿來的,看一下基于RPC層,服務提供方和服務消費方之間的調用關系,如圖所示:

 

  • 節點角色說明

  • 調用關系說明

0:服務容器負責啟動,加載,運行服務提供者。

1:服務提供者在啟動時,向注冊中心注冊自己提供的服務。

2:服務消費者在啟動時,向注冊中心訂閱自己所需的服務。

3:注冊中心返回服務提供者地址列表給消費者,如果有變更,注冊中心將基于長連接推送變更數據給消費者。

4:服務消費者,從提供者地址列表中,基于軟負載均衡算法,選一臺提供者進行調用,如果調用失敗,再選另一臺調用。

5:服務消費者和提供者,在內存中累計調用次數和調用時間,定時每分鐘發送一次統計數據到監控中心。

Dubbo架構采用的是一種非常簡單的模型,要么是提供方提供服務,要么是消費方消費服務,所以基于這一點可以抽象出服務提供方(Provider)和服務消費方(Consumer)兩個角色。另外Dubbo架構還具有以下幾個特點,連通性、健壯性、伸縮性、升級性,有關注冊中心、協議支持、服務監控等內容,也在特點里有詳細的描述。

  • 連通性(服務消費者和服務提供者的關聯)

1. 注冊中心負責服務地址的注冊與查找,相當于目錄服務,服務提供者和消費者只在啟動時與注冊中心交互,注冊中心不轉發請求,壓力較小。

2. 監控中心負責統計各服務調用次數,調用時間等,統計先在內存匯總后每分鐘一次發送到監控中心服務器,并以報表展示。

3. 服務提供者向注冊中心注冊其提供的服務,并匯報調用時間到監控中心,此時間不包含網絡開銷。

4. 服務消費者向注冊中心獲取服務提供者地址列表,并根據負載算法直接調用提供者,同時匯報調用時間到監控中心,此時間包含網絡開銷。

5. 注冊中心,服務提供者,服務消費者三者之間均為長連接,監控中心除外。

6. 注冊中心通過長連接感知服務提供者的存在,服務提供者宕機,注冊中心將立即推送事件通知消費者。

7. 注冊中心和監控中心全部宕機,不影響已運行的提供者和消費者,消費者在本地緩存了提供者列表。

8. 注冊中心和監控中心都是可選的,服務消費者可以直連服務提供者。

  • 健壯性(任意節點宕掉后,服務仍然可用)

1. 監控中心宕掉不影響使用,只是丟失部分采樣數據。

2. 數據庫宕掉后,注冊中心仍能通過緩存提供服務列表查詢,但不能注冊新服務。

3. 注冊中心對等集群,任意一臺宕掉后,將自動切換到另一臺。

4. 注冊中心全部宕掉后,服務提供者和服務消費者仍能通過本地緩存通訊。

5. 服務提供者無狀態,任意一臺宕掉后,不影響使用。

6. 服務提供者全部宕掉后,服務消費者應用將無法使用,并無限次重連等待服務提供者恢復。

  • 伸縮性(節點可以自動增加)

1. 注冊中心為對等集群,可動態增加機器部署實例,所有客戶端將自動發現新的注冊中心。

2. 服務提供者無狀態,可動態增加機器部署實例,注冊中心將推送新的服務提供者信息給消費者。

  • 升級性(可平滑升級)

當服務集群規模進一步擴大,帶動IT治理結構進一步升級,需要實現動態部署,進行流動計算,不會給現有分布式服務架構帶來阻力。下圖是未來可能的一種調用架構:

 

節點角色說明:

四、總結

Dubbo是Alibaba開源的分布式服務框架,并被廣泛應用于各互聯網公司。Dubbo只需要通過Spring配置的方式即可完成服務化,對于應用無入侵,其框架本身的成熟度以及文檔的完善程度,基本都能滿足各互聯網公司的業務需求。

如果你需要使用配置中心、分布式跟蹤這些內容則需要自己去集成,有一些定制化難度。另外一款開源分布式服務框架Spring Cloud 發展到現在,幾乎考慮了服務治理的方方面面,開發起來非常的便利和簡單。因此,企業需要根據自身的研發水平和所處階段選擇合適的架構來解決業務問題,不管是Dubbo還是Spring Cloud都是實現微服務有效的工具。

【51CTO原創稿件,合作站點轉載請注明原文作者和出處為51CTO.com】

責任編輯:武曉燕 來源: 51CTO
相關推薦

2023-05-12 08:19:12

Netty程序框架

2021-06-30 00:20:12

Hangfire.NET平臺

2021-02-02 18:39:05

JavaScript

2020-11-10 10:48:10

JavaScript屬性對象

2021-01-29 18:41:16

JavaScript函數語法

2021-06-04 09:56:01

JavaScript 前端switch

2023-05-08 08:21:15

JavaNIO編程

2021-03-05 18:04:15

JavaScript循環代碼

2021-09-27 09:18:30

ListIterato接口方法

2021-05-18 08:30:42

JavaScript 前端JavaScript時

2023-07-30 15:18:54

JavaScript屬性

2021-03-09 14:04:01

JavaScriptCookie數據

2024-04-19 14:23:52

SwitchJavaScript開發

2024-01-30 13:47:45

2021-01-26 23:46:32

JavaScript數據結構前端

2021-06-24 09:05:08

JavaScript日期前端

2021-02-26 20:01:57

SVG濾鏡元素

2023-09-06 14:57:46

JavaScript編程語言

2020-12-08 08:09:49

SVG圖標Web

2025-02-25 11:12:53

JavaScriptHTML元素CSS
點贊
收藏

51CTO技術棧公眾號

missav|免费高清av在线看| 日韩精品一级中文字幕精品视频免费观看 | 国产欧美日韩卡一| 天天做天天爱天天高潮| 欧美丝袜丝交足nylons172| 欧美激情在线播放| jizz亚洲女人高潮大叫| 亚洲精美色品网站| 免费影视亚洲| 日韩欧美激情四射| 男人天堂久久久| 色综合激情五月| 你懂的在线网址| 岛国视频午夜一区免费在线观看 | 成人av在线电影| 女人床在线观看| 久久电影国产免费久久电影| 婷婷久久伊人| 麻豆成人av在线| 国产精品无码乱伦| 激情久久五月天| 激情成人开心网| 成人动漫视频在线| 日本一极黄色片| 国产精品高潮呻吟| jizzjizz亚洲中国少妇| 天涯成人国产亚洲精品一区av| 国产导航在线| 色综合天天综合| 97电影在线| 精品国产3级a| 99久久久国产精品免费调教网站| 少妇高潮 亚洲精品| 日韩中文字幕| 欧美中文字幕视频在线观看| 欧美日韩在线二区| 99re资源| 久久成人免费网| 国产91在线免费| 日本一二三不卡| 男女视频网站免费观看| 午夜精品久久久久久久99樱桃| 在线电影av| 91精品国产aⅴ一区二区| 久久男人av资源站| 欧美日韩福利电影| 日韩欧美自拍| 日韩在线国产| 97se亚洲国产综合自在线| 色综合色综合色综合色综合| 亚洲高清免费观看| 日本免费中文字幕在线| 亚洲精品在线看| 国产精品乱战久久久| 亚洲伊人久久大香线蕉av| 麻豆精品国产传媒mv男同| 亚洲精品中文字幕无码蜜桃| 亚洲国产cao| 98色花堂精品视频在线观看| 欧美日韩国产91| 在线 亚洲欧美在线综合一区| 亚洲小说欧美另类激情| 国产精品不卡一区| 黄色成人影院| 久久天天躁狠狠躁夜夜躁2014| 欧美高清视频手机在在线| 一本久道久久综合狠狠爱亚洲精品| 99久久99精品久久久久久| 在线人体午夜视频| 亚洲免费视频在线观看| 美日韩中文字幕| 视频一区二区精品| 亚洲综合一区二区| 欧美国产日韩电影| 5566中文字幕一区二区| 99久久免费国产| 欧美一区二区三区| 日本久久久久久| 国产精品一区二区三区网站| 在线免费观看av网站| 日韩中文在线视频| 久久av一区| 午夜视频99| 久久成年人免费电影| 久久xxxx| 97影院在线观看| 最新的欧美黄色| 99精品福利视频| 亚洲一本大道| 大胆人体色综合| 久久久久久网| 天堂v视频永久在线播放| 免费av一区二区| 麻豆精品久久久| av电影在线观看| 国产精品视频最多的网站| 久久夜色精品一区| 精精国产xxxx视频在线野外| 成人av电影免费| 亚洲午夜久久久久| 99热这里只有精品首页| avove在线观看| 91麻豆精品久久久久蜜臀| 不卡中文一二三区| 狠狠躁狠狠躁视频专区| 亚洲欧美在线第一页| 免费在线亚洲欧美| 免费黄色在线视频网站| 2019日本中文字幕| 99国产一区二区三精品乱码| 国产高清中文字幕在线| 国产精品综合久久久久久| 亚洲国产精品综合小说图片区| 国产精品白丝av嫩草影院| www.av片| 亚洲精品一区二区三区不| 日韩影院精彩在线| 中文字幕中文字幕在线十八区 | 亚洲免费观看高清| 日韩欧美高清一区二区三区| 天天干天天色天天爽| 日韩限制级电影在线观看| 91成人精品| 在线伊人免费视频| 浅井舞香一区二区| 久久婷婷久久一区二区三区| 成人av集中营| 国产极品在线视频| 久久综合伊人77777蜜臀| 成a人片国产精品| 91视频成人| 国产激情在线观看视频| 欧美成人精品一区二区| 久久久亚洲精品石原莉奈| 亚洲欧洲专区| 欧美精品成人网| 91po在线观看91精品国产性色| 亚洲特级片在线| 久久精品国产68国产精品亚洲| 小草在线视频在线免费视频| 91手机在线播放| 欧美一区二区三区白人| 免费成人在线观看| 欧美专区福利免费| www.夜夜爱| 久久这里只有精品99| 日本一区二区动态图| 国产一区二区在线| 成人免费高清在线播放| 就去色蜜桃综合| 亚洲欧美一区二区三区四区| 91亚洲午夜精品久久久久久| 国产福利资源一区| 在线电影av| 亚洲欧洲日韩综合二区| 在线视频一区二区| 1000部国产精品成人观看| 日韩精品一区二区三区免费观影 | 91看片淫黄大片一级在线观看| 香蕉免费一区二区三区在线观看| 四虎免费av| 7777精品伊久久久大香线蕉语言| 91精选在线观看| 丁香婷婷深情五月亚洲| 日韩在线黄色| 日韩在线观看www| 99久久久精品视频| 茄子视频成人在线| 欧美日韩第一区日日骚| 国产成人在线色| 免费不卡中文字幕在线| seseavlu视频在线| 日韩av高清在线看片| 国产精品欧美日韩久久| 91精品国产综合久久久久久漫画| 国产精品1区2区3区在线观看| 国产精品一线| a天堂在线资源| 欧美中日韩在线| 国产精品精品国产| 欧美成人a视频| 国产视频一区二区三区在线观看| 在线成人直播| 电影一区二区| 日韩av资源| 国产资源在线视频| 91亚洲人电影| 亚洲视频综合网| 无码av免费一区二区三区试看 | 国产精品网站在线观看| 欧美日韩99| 国产精品美女午夜爽爽| 毛片视频免费观看| 亚洲午夜在线观看| 欧美性受xxxx白人性爽| 精品国精品自拍自在线| 亚洲一区二区精品3399| 国产精品一区一区| 亚洲黄色影院| 狠狠做深爱婷婷综合一区|