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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Dubbo之RPC架构

發(fā)布時間:2023/12/10 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Dubbo之RPC架构 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

為什么會有dubbo的出現(xiàn):

? 隨著互聯(lián)網(wǎng)的發(fā)展,網(wǎng)站應(yīng)用的規(guī)模不斷擴大,常規(guī)的垂直應(yīng)用架構(gòu)已無法應(yīng)對,分布式服務(wù)架構(gòu)以及流動計算架構(gòu)勢在必行,亟需一個治理系統(tǒng)確保架構(gòu)有條不紊的演進。

  • 單一應(yīng)用架構(gòu)
    • 當網(wǎng)站流量很小時,只需一個應(yīng)用,將所有功能都部署在一起,以減少部署節(jié)點和成本。
    • 此時,用于簡化增刪改查工作量的??數(shù)據(jù)訪問框架(ORM)??是關(guān)鍵。
  • 垂直應(yīng)用架構(gòu)
    • 當訪問量逐漸增大,單一應(yīng)用增加機器帶來的加速度越來越小,將應(yīng)用拆成互不相干的幾個應(yīng)用,以提升效率。
    • 此時,用于加速前端頁面開發(fā)的??Web框架(MVC)??是關(guān)鍵。
  • 分布式服務(wù)架構(gòu)
    • 當垂直應(yīng)用越來越多,應(yīng)用之間交互不可避免,將核心業(yè)務(wù)抽取出來,作為獨立的服務(wù),逐漸形成穩(wěn)定的服務(wù)中心,使前端應(yīng)用能更快速的響應(yīng)多變的市場需求。
    • 此時,用于提高業(yè)務(wù)復用及整合的??分布式服務(wù)框架(RPC)??是關(guān)鍵。
  • 流動計算架構(gòu)
    • 當服務(wù)越來越多,容量的評估,小服務(wù)資源的浪費等問題逐漸顯現(xiàn),此時需增加一個調(diào)度中心基于訪問壓力實時管理集群容量,提高集群利用率。
    • 此時,用于提高機器利用率的??資源調(diào)度和治理中心(SOA)??是關(guān)鍵。

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

  (1) 當服務(wù)越來越多時,服務(wù)URL配置管理變得非常困難,F5硬件負載均衡器的單點壓力也越來越大。

此時需要一個服務(wù)注冊中心,動態(tài)的注冊和發(fā)現(xiàn)服務(wù),使服務(wù)的位置透明。

并通過在消費方獲取服務(wù)提供方地址列表,實現(xiàn)軟負載均衡和Failover,降低對F5硬件負載均衡器的依賴,也能減少部分成本。

  (2) 當進一步發(fā)展,服務(wù)間依賴關(guān)系變得錯蹤復雜,甚至分不清哪個應(yīng)用要在哪個應(yīng)用之前啟動,架構(gòu)師都不能完整的描述應(yīng)用的架構(gòu)關(guān)系。

這時,需要自動畫出應(yīng)用間的依賴關(guān)系圖,以幫助架構(gòu)師理清理關(guān)系。

  (3) 接著,服務(wù)的調(diào)用量越來越大,服務(wù)的容量問題就暴露出來,這個服務(wù)需要多少機器支撐?什么時候該加機器?

為了解決這些問題,第一步,要將服務(wù)現(xiàn)在每天的調(diào)用量,響應(yīng)時間,都統(tǒng)計出來,作為容量規(guī)劃的參考指標。

  其次,要可以動態(tài)調(diào)整權(quán)重,在線上,將某臺機器的權(quán)重一直加大,并在加大的過程中記錄響應(yīng)時間的變化,直到響應(yīng)時間到達閥值,記錄此時的訪問量,再以此訪問量乘以機器數(shù)反推總?cè)萘俊?/span>

  以上是Dubbo最基本的幾個需求,更多服務(wù)治理問題參見:

節(jié)點角色說明:

  • Provider:??暴露服務(wù)的服務(wù)提供方。
  • Consumer:??調(diào)用遠程服務(wù)的服務(wù)消費方。
  • Registry:??服務(wù)注冊與發(fā)現(xiàn)的注冊中心。
  • Monitor:??統(tǒng)計服務(wù)的調(diào)用次調(diào)和調(diào)用時間的監(jiān)控中心。
  • Container:??服務(wù)運行容器。

調(diào)用關(guān)系說明:

  • 0. 服務(wù)容器負責啟動,加載,運行服務(wù)提供者。
  • 1. 服務(wù)提供者在啟動時,向注冊中心注冊自己提供的服務(wù)。
  • 2. 服務(wù)消費者在啟動時,向注冊中心訂閱自己所需的服務(wù)。
  • 3. 注冊中心返回服務(wù)提供者地址列表給消費者,如果有變更,注冊中心將基于長連接推送變更數(shù)據(jù)給消費者。
  • 4. 服務(wù)消費者,從提供者地址列表中,基于軟負載均衡算法,選一臺提供者進行調(diào)用,如果調(diào)用失敗,再選另一臺調(diào)用。
  • 5. 服務(wù)消費者和提供者,在內(nèi)存中累計調(diào)用次數(shù)和調(diào)用時間,定時每分鐘發(fā)送一次統(tǒng)計數(shù)據(jù)到監(jiān)控中心。

總結(jié)

以上是生活随笔為你收集整理的Dubbo之RPC架构的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。