国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Dubbo接口級服務發(fā)現(xiàn)-數(shù)據(jù)結(jié)構(gòu)

這篇具有很好參考價值的文章主要介紹了Dubbo接口級服務發(fā)現(xiàn)-數(shù)據(jù)結(jié)構(gòu)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

目錄

Dubbo服務治理易用性的原理:

URL地址數(shù)據(jù)劃分:

Dubbo接口級服務發(fā)現(xiàn)---易用性的代價

Proposal,適應云原生、更大規(guī)模集群的服務發(fā)現(xiàn)類型。

Dubbo3應用級服務發(fā)現(xiàn)---基本原理

Dubbo負載均衡機制

常規(guī)負載均衡算法

負載均衡策略:

Weighted Random

RoundRobin

LeastActive

ShortestResponse

配置方式:

自適應負載均衡與服務柔性

整體介紹:

P2C算法原理介紹:


Dubbo服務治理易用性的原理:
  1. 地址發(fā)現(xiàn)聚合Key==RPC粒度服務
  2. 注冊中心同步的地址包含地址、元數(shù)據(jù)與配置
  3. 得益于1與2,Dubbo可以支持應用、RPC、方法粒度的服務治理
URL地址數(shù)據(jù)劃分:
  1. 首先是實例可訪問地址,主要信息包含ip port,是消費端將基于這條數(shù)據(jù)生成tcp網(wǎng)絡連接,作為后續(xù)RPC數(shù)據(jù)的傳輸載體
  2. 其次是RPC元數(shù)據(jù),元數(shù)據(jù)用于定義和描述一次RPC請求,一方面表明這條地址數(shù)據(jù)是與某條具體的RPC服務有關的,它的版本號,分組以及方法相關信息,另一方面表明。
  3. 下一部分是RPC配置數(shù)據(jù),部分配置用于控制RPC調(diào)用的行為,還有一部分配置用于同步Provider進程實例的狀態(tài),典型的如超時時間,數(shù)據(jù)編碼的序列化方式等。
  4. 最后一部分是自定義的元數(shù)據(jù),這部分內(nèi)容區(qū)別于以上框架預定義的各項配置,給了用戶更大的靈活性,用戶可任意擴展并添加自定義元數(shù)據(jù),以進一步豐富實例狀態(tài)。

以上就是Dubbo2在易用性、服務治理功能性、可擴展性上強于很多服務框架的真正原因。

Dubbo接口級服務發(fā)現(xiàn)---易用性的代價

Dubbo接口級服務發(fā)現(xiàn)-數(shù)據(jù)結(jié)構(gòu)

一個事物總是有其兩面性,Dubbo2地址模型帶來易用性和強大功能的同時,也給整個架構(gòu)的水平可擴展性帶來了一些限制。這個問題在普通規(guī)模的微服務集群下是完全感知不到的,而隨著集群規(guī)模的增長,當整個集群內(nèi)應用、機器達到一定數(shù)量時,整個集群內(nèi)的各個組件才開始遇到規(guī)模瓶頸。在總結(jié) 包括阿里巴巴、工商銀行等多個大廠用戶在生產(chǎn)環(huán)境特點后,我們總結(jié)出以下兩點突出問題。

  1. 首先,注冊中心集群容量達到上限閾值。由于所有的URL地址數(shù)據(jù)都被發(fā)送到注冊中心,注冊中心的存儲容量達到上限,推送效率也隨著下降。
  2. 而在消費端這一側(cè),Dubbo2框架常駐內(nèi)存已超40%,每次地址推送帶來的CPU等資源消耗率也非常高 ,影響正常的業(yè)務調(diào)用。
  3. 青色部分,假設這里有一個普通的Dubbo Provider應用,該應用內(nèi)部定義有10個RPC Service,應用被部署在100個機器實例上,這個應用在集群中產(chǎn)生的數(shù)據(jù)量將會是“Service數(shù)*機器實例數(shù)”,也就是10*100=1000條,數(shù)據(jù)被從兩個維度放大了。
    1. 從地址角度:100條唯一的實例地址,被放大了10倍
    2. 從服務角度:10條唯一的服務元數(shù)據(jù),被放大100倍
Proposal,適應云原生、更大規(guī)模集群的服務發(fā)現(xiàn)類型。

Dubbo接口級服務發(fā)現(xiàn)-數(shù)據(jù)結(jié)構(gòu)

問題點:

  1. 如何重新組織數(shù)據(jù)(地址、RPC元數(shù)據(jù)、RPC配置),避免冗余數(shù)據(jù)的出現(xiàn)
  2. 如何在保留易用性的同時,在地址發(fā)現(xiàn)層面(注冊中心數(shù)據(jù)格式)與其他微服務體系打通
Dubbo3應用級服務發(fā)現(xiàn)---基本原理

Dubbo接口級服務發(fā)現(xiàn)-數(shù)據(jù)結(jié)構(gòu)

Dubbo3的應用級服務發(fā)現(xiàn)方案設計本質(zhì)上就是圍繞以上兩個問題展開。其基本思路是:地址發(fā)現(xiàn)鏈路上的聚合元素也就是我們之前提到的key由服務調(diào)整為應用,這也是其名稱叫做應用級服務發(fā)現(xiàn)的由來;另外,通過注冊中心同步的數(shù)據(jù)內(nèi)容上做了大幅精簡,只保留最核心的IP、port地址數(shù)據(jù)。

Dubbo接口級服務發(fā)現(xiàn)-數(shù)據(jù)結(jié)構(gòu)

升級后的變化:

首先:在Provider實例這一側(cè),相比于之前每個RPC Service注冊一條地址數(shù)據(jù),一個Provider實例只會注冊一條地址到注冊中心。

其次,在注冊中心這一側(cè),地址以應用名為粒度做聚合,應用名節(jié)點下是精簡過后的Provider實例地址。

Dubbo接口級服務發(fā)現(xiàn)-數(shù)據(jù)結(jié)構(gòu)

Dubbo3引入了一個內(nèi)置MetadataService元數(shù)據(jù)服務,由中心化推送為Customer到Provider的點對點拉取,在這個模式下,元數(shù)據(jù)傳輸?shù)臄?shù)據(jù)量將不在一個問題,因此可以在元數(shù)據(jù)中擴展出更多的參數(shù),暴露出更多的治理數(shù)據(jù)。

Dubbo接口級服務發(fā)現(xiàn)-數(shù)據(jù)結(jié)構(gòu)

消費端Cusumer的地址訂閱行為,消費端從分兩步讀取地址數(shù)據(jù),首先是從注冊中心收到精簡后的地址,隨后通過調(diào)用MetadataService元數(shù)據(jù)服務,讀取對端的元數(shù)據(jù)信息、在收到這兩部分數(shù)據(jù)之后,消費端會完成地址數(shù)據(jù)的聚合,最終在運行態(tài)還原出類似Dubbo2的URL地址格式,因此從最終結(jié)果而言,應用級地址模型同時兼顧了地址傳輸層面的性能與運行層面的功能性。

Dubbo負載均衡機制
常規(guī)負載均衡算法

在集群負載均衡時,Dubbo提供了多種均衡策略,缺省為weighted random基于權(quán)重的隨機負載均衡策略。

具體實現(xiàn)上,Dubbo提供的是客戶端負載均衡,即由Consumer通過負載均衡算法得出需要將請求提交到那個Provider實例。

負載均衡策略:

目前Dubbo內(nèi)置如下負載均衡算法,可通過調(diào)整配置項進行啟用

Dubbo接口級服務發(fā)現(xiàn)-數(shù)據(jù)結(jié)構(gòu)

Weighted Random

加權(quán)機制,按權(quán)重設置隨機概率。

在一個截面上碰撞概率高,但是調(diào)用量越大分布越均勻,而且按概率使用權(quán)重后也比較均勻,有利于動態(tài)調(diào)整提供者權(quán)重。

缺點:存在慢的提供者累計請求的問題,比如:第二臺機器很慢,但是沒有宕機,當前請求調(diào)用到第二臺時就卡了。時間長了之后,所有的請求都卡在第二臺機器上面了。

RoundRobin

加權(quán)輪詢,按公約后的權(quán)重設置輪詢比例,循環(huán)調(diào)用節(jié)點。

缺點:同樣存在慢的提供者累計請求的問題

加權(quán)輪詢過程中,如果某節(jié)點權(quán)重過大,會存在某段時間內(nèi)調(diào)用過于集中的問題。

LeastActive

加權(quán)最少活躍調(diào)用優(yōu)先,活躍數(shù)越低,越優(yōu)先調(diào)用,相同活躍數(shù)的進行加權(quán)隨機處理?;钴S數(shù)指調(diào)用前后技術(shù)差(針對特定提供者,請求發(fā)送數(shù)-響應返回數(shù)),表示特定提供者的任務堆積量,活躍數(shù)越低,代表提供者處理能力越強。

慢的提供者收到更少請求,因為越慢的提供者的調(diào)用前后計數(shù)差會越大,相對的,處理能力越強的節(jié)點,處理更多的請求。

ShortestResponse

加權(quán)最短響應優(yōu)先,在最近一個滑動窗口中,響應時間越短,越優(yōu)先調(diào)用,相同響應時間的進行加權(quán)隨機。

使得響應時間越快的提供者,處理更多的請求

缺點:可能會造成流量過于集中于高性能節(jié)點的問題

這里的響應時間=某個提供者在窗口時間內(nèi)的平均響應時間,窗口時間默認是30s

ConsistentHash

一致性Hash,相同參數(shù)的請求總是發(fā)到同一提供者

當某一臺提供者宕機時,原本提供者的請求,基于虛擬節(jié)點,平攤到其他提供者,不會引起劇烈變動。

缺省只對第一個參數(shù)Hash,如果要修改,需要配置:<dubbo:parameter

key="hash.arguments" value="0,1" />

缺省用160份虛擬節(jié)點,如果要修改,請配置置 <dubbo:parameter

key="hash.nodes" value="320" />

配置方式:

Dubbo支持在服務提供者一側(cè)配置默認的負載均衡,這樣所有消費者都默認使用提供者指定的負載均衡策略,消費者可以自己配置要使用的負載均衡策略,如果沒有任何配置,則默認使用隨機負載均衡策略。

同一個應用內(nèi)支持配置不同的服務使用不同的負載均衡策略,支持同一服務的不同方法配置不同的負載均衡策略。

自適應負載均衡與服務柔性
整體介紹:

所謂的“柔性服務”主要是指consumer端的負載均衡和provider端的限流兩個功能,在這之前dubbo版本中,負載均衡部分更多的考慮是公平性原則,即consumer端盡可能平等的從provider中做出選擇,在某些情況下表現(xiàn)并不夠理想。而限流部分只提供了靜態(tài)的限流方案,需要用戶對provider端設置靜態(tài)的最大并發(fā)值,然而該值的合理選取對用戶來講并不容易。文章來源地址http://www.zghlxwxcb.cn/news/detail-514021.html

P2C算法原理介紹:
  1. 對于每次調(diào)用,從可用的Provider列表中做兩次隨機選擇,選出兩個節(jié)點providerA和providerB.
  2. 比較providerA和providerB兩個節(jié)點,選擇其“當前正在 處理的連接數(shù)”較小的那個節(jié)點。

到了這里,關于Dubbo接口級服務發(fā)現(xiàn)-數(shù)據(jù)結(jié)構(gòu)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權(quán),不承擔相關法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • MySQL5.7數(shù)據(jù)目錄結(jié)構(gòu)

    以CentOS7為例,數(shù)據(jù)目錄為 /var/lib/mysql/ ,其內(nèi)容如下: 其中 mysql 、 sys 等為數(shù)據(jù)庫,即一個數(shù)據(jù)庫對應的一個目錄。 ibdata1 存放的是 InnoDB 的元數(shù)據(jù)、變更緩沖區(qū)、雙寫緩沖區(qū)和撤銷日志。 ib_logfile0 和 ib_logfile1 存放普通日志。 ib_buffer_pool 存放緩存池信息。 以 test 數(shù)據(jù)庫為例

    2024年02月12日
    瀏覽(25)
  • 信息學奧賽一本通(基礎算法與數(shù)據(jù)結(jié)構(gòu)-題解匯總目錄)

    信息學奧賽一本通(C++版)在線評測系統(tǒng) 基礎(二)基礎算法? ?更新中。。。。。。 第一章高精度計算 1307【例1.3】高精度乘法 1308【例1.5】高精除 1309【例1.6】回文數(shù)(Noip1999) 1168大整數(shù)加法 1169大整數(shù)減法 1170計算2的N次方 1171大整數(shù)的因子 1172求10000以內(nèi)n的階乘 1173階乘

    2024年02月16日
    瀏覽(24)
  • 【數(shù)據(jù)結(jié)構(gòu)】棧各個接口的實現(xiàn)

    【數(shù)據(jù)結(jié)構(gòu)】棧各個接口的實現(xiàn)

    目錄 前言: 一、棧的概述: 1.棧的概念: 二、棧接口的實現(xiàn): 1.棧的初始化: 2.壓棧: 3.出棧: 4.取棧頂元素: 5.計算棧內(nèi)有效數(shù)據(jù): 6.判斷棧是否為空: 7.棧的銷毀: 三、完整代碼: 1.Stack.h: 2.Stack.c: 總結(jié): ? ? ?前面我們已經(jīng)學習了 順序表和鏈表的相關知識和對各個接

    2023年04月14日
    瀏覽(25)
  • 數(shù)據(jù)結(jié)構(gòu) —— 雙向鏈表(超詳細圖解 & 接口函數(shù)實現(xiàn))

    數(shù)據(jù)結(jié)構(gòu) —— 雙向鏈表(超詳細圖解 & 接口函數(shù)實現(xiàn))

    數(shù)據(jù)結(jié)構(gòu) —— 順序表 數(shù)據(jù)結(jié)構(gòu) —— 單鏈表 數(shù)據(jù)結(jié)構(gòu) —— 雙向鏈表 數(shù)據(jù)結(jié)構(gòu) —— 隊列 數(shù)據(jù)結(jié)構(gòu) —— 棧 數(shù)據(jù)結(jié)構(gòu) —— 堆 數(shù)據(jù)結(jié)構(gòu) —— 二叉樹 數(shù)據(jù)結(jié)構(gòu) —— 八大排序 數(shù)據(jù)結(jié)構(gòu)是計算機存儲、組織數(shù)據(jù)的方式。數(shù)據(jù)結(jié)構(gòu)是指相互之間存在一種或多種特定關系的數(shù)據(jù)元

    2024年02月11日
    瀏覽(30)
  • 【Java數(shù)據(jù)結(jié)構(gòu) -- 實現(xiàn)雙鏈表的接口方法】

    【Java數(shù)據(jù)結(jié)構(gòu) -- 實現(xiàn)雙鏈表的接口方法】

    雙鏈表是一種數(shù)據(jù)結(jié)構(gòu),其中每個節(jié)點包含 一個指向前一個節(jié)點的指針和一個指向后一個節(jié)點的指針 。由于鏈表沒有將元素存儲在連續(xù)的空間中,元素存儲在單獨的節(jié)點中,然后通過引用將節(jié)點連接起來,因此雙鏈表可以任意且快速的插入和刪除元素。 引用接口IList,在把

    2024年01月16日
    瀏覽(99)
  • go數(shù)據(jù)類型-空結(jié)構(gòu)體、空接口、nil

    有經(jīng)驗的開發(fā)人員都知道,所有的空結(jié)構(gòu)體是指向一個 zerobase的地址,而且大小為0 一般用來作結(jié)合map作為set 或者 在channel中 傳遞信號。 能看到當一個空結(jié)構(gòu)體中,包含了其他類型的變量,就不指向 zerobase。 go中的接口都是隱式的,增加的封裝的靈活性,也為閱讀源碼增加了

    2024年02月05日
    瀏覽(28)
  • 【Dubbo核心 詳解三】Dubbo服務接口的詳解

    【Dubbo核心 詳解三】Dubbo服務接口的詳解

    ?創(chuàng)作者:陳書予 ??個人主頁:陳書予的個人主頁 ??陳書予的個人社區(qū),歡迎你的加入: 陳書予的社區(qū) ??專欄地址: Dubbo專欄 本文將介紹 Dubbo 服務接口的基本概念和特點,實現(xiàn)方式和應用場景,以及注冊與發(fā)現(xiàn)、調(diào)用、屬性和參數(shù)、異常處理、日志和監(jiān)控、高級特性、微

    2023年04月24日
    瀏覽(25)
  • 【數(shù)據(jù)結(jié)構(gòu)】 List與順序表及接口的實現(xiàn)

    【數(shù)據(jù)結(jié)構(gòu)】 List與順序表及接口的實現(xiàn)

    在集合框架中, List是一個接口,繼承自Collection。 Collection也是一個接口,該接口中規(guī)范了后序容器中常用的一些方法,具體如下所示: Iterable也是一個接口,表示實現(xiàn)該接口的類是可以逐個元素進行遍歷的,具體如下: List 的官方文檔 站在數(shù)據(jù)結(jié)構(gòu)的角度來看, List就是一

    2024年02月12日
    瀏覽(21)
  • 【免殺前置課——PE文件結(jié)構(gòu)】十八、數(shù)據(jù)目錄表及其內(nèi)容詳解——數(shù)據(jù)目錄表(導出表、導入表、IAT表、TLS表)詳解;如何在程序在被調(diào)試之前反擊?TLS反調(diào)試(附代碼)

    【免殺前置課——PE文件結(jié)構(gòu)】十八、數(shù)據(jù)目錄表及其內(nèi)容詳解——數(shù)據(jù)目錄表(導出表、導入表、IAT表、TLS表)詳解;如何在程序在被調(diào)試之前反擊?TLS反調(diào)試(附代碼)

    數(shù)據(jù)目錄表:可選PE頭最后一個成員,就是數(shù)據(jù)目錄.一共有16個 分別是:導出表、導入表、資源表、異常信息表、安全證書表、重定位表、調(diào)試信息表、版權(quán)所以表、全局指針表 TLS表、加載配置表、綁定導入表、IAT表、延遲導入表、COM信息表 最后一個保留未使用,默認為0。

    2024年01月15日
    瀏覽(21)
  • 【數(shù)據(jù)結(jié)構(gòu)】_4.List接口實現(xiàn)類LinkedList與鏈表

    【數(shù)據(jù)結(jié)構(gòu)】_4.List接口實現(xiàn)類LinkedList與鏈表

    目錄 1.鏈表的結(jié)構(gòu)與特點 1.1 鏈表的結(jié)構(gòu): 1.2 鏈表的特點: 2. 不帶頭單鏈表的模擬實現(xiàn) 3. 單鏈表OJ 3.1 題目1:移除鏈表元素:? 3.2 題目2:反轉(zhuǎn)一個單鏈表 3.3 題目3:返回鏈表的中間結(jié)點 3.4 題目4:鏈表的倒數(shù)第k個結(jié)點 3.5 題目5:合并兩個有序鏈表 3.6 題目6:鏈表的回文結(jié)構(gòu)

    2024年02月15日
    瀏覽(18)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包