分布式服務(wù)框架設(shè)計(jì)

1. 服務(wù)框架的設(shè)計(jì)

盡管不同的分布式服務(wù)框架實(shí)現(xiàn)細(xì)節(jié)存在差異圣勒,但是核心功能差異不大,下面的架構(gòu)圖描繪了一個(gè)分布式服務(wù)框架的整體邏輯架構(gòu)析恢。

image.png

總共分為 3 層:

  1. 服務(wù)層查刻,Service键兜,其中主要部分就是動(dòng)態(tài)代理,主要用于將服務(wù)提供者的接口封裝成遠(yuǎn)程服務(wù)調(diào)用穗泵。上層的服務(wù)接口用于 Spring 之類的業(yè)務(wù)框架使用普气,也是 Spring 的 bean.

  2. 過濾器層,服務(wù)調(diào)用職責(zé)鏈佃延,提供多種調(diào)用切面供框架自身和使用者擴(kuò)展棋电,例如負(fù)載均衡,性能統(tǒng)計(jì)苇侵,服務(wù)調(diào)用完成通知赶盔,失敗重試等。

  3. RPC 層榆浓,這里就是 RPC 框架的核心部分于未,包括通信框架,序列化框架陡鹃,還有用于屏蔽底層通信框架和序列化框架的抽象接口烘浦。

分布式服務(wù)框架通常會(huì)包含另外兩個(gè)重要功能:服務(wù)治理中心服務(wù)注冊中心

1. 服務(wù)注冊中心:負(fù)責(zé)服務(wù)的發(fā)布和通知萍鲸,通常支持對等集群部署闷叉,某個(gè)節(jié)點(diǎn)宕機(jī)不會(huì)影響整個(gè)集群不可用。即使全部宕機(jī)脊阴,只影響新的節(jié)點(diǎn)注冊和發(fā)布握侧,不影響現(xiàn)有的,因?yàn)榭蛻舳诵枰彺娣?wù)路由信息嘿期。

2. 服務(wù)治理中心: 服務(wù)治理中心通常包括服務(wù)治理接口服務(wù)治理 Portal品擎,架構(gòu)師,測試人員和系統(tǒng)運(yùn)維人員通過服務(wù)治理 Portal 對服務(wù)的運(yùn)行狀態(tài)备徐,歷史數(shù)據(jù)萄传,健康度和調(diào)用關(guān)系等進(jìn)行可視化的分析和維護(hù),目標(biāo)是要持續(xù)優(yōu)化服務(wù)蜜猾,防止服務(wù)架構(gòu)腐化秀菱,保證服務(wù)高質(zhì)量運(yùn)行。

2. 服務(wù)框架的功能

雖然每個(gè)服務(wù)框架不盡相同蹭睡,但是還有有一些核心功能是相同的衍菱,比如以下功能:

  1. 服務(wù)訂閱發(fā)布:比如,配置化發(fā)布和引用服務(wù)棠笑,服務(wù)自動(dòng)發(fā)現(xiàn)梦碗,服務(wù)在線注冊和取消注冊。
  2. 服務(wù)路由:比如,默認(rèn)提供隨機(jī)路由洪规,輪詢印屁,基于權(quán)重的路由,粘滯連接斩例,路由定制功能雄人。
  3. 集群容錯(cuò):比如,F(xiàn)ailover(失敗自動(dòng)切換)念赶,F(xiàn)ailback(失敗自動(dòng)恢復(fù))础钠,F(xiàn)ailfast(快速失敗)叉谜。
  4. 服務(wù)調(diào)用:需要支持:同步調(diào)用旗吁,異步調(diào)用,并行調(diào)用停局。
  5. 多協(xié)議:包括私有協(xié)議很钓,公有協(xié)議。
  6. 序列化方式:需要支持二進(jìn)制和文本類序列化方式董栽。
  7. 統(tǒng)一配置:支持本地靜態(tài)配置码倦,支持基于配置中心的動(dòng)態(tài)配置。

以上功能可以按照業(yè)務(wù)定制锭碳,不需要 100% 支持袁稽。

3. 服務(wù)框架的性能指標(biāo)

分布式服務(wù)框架的性能肯定比不上本地調(diào)用,原因是:網(wǎng)絡(luò)通信擒抛,序列化推汽,反射調(diào)用,動(dòng)態(tài)代理這些都會(huì)消耗性能闻葵。所以需要有性能指標(biāo)民泵。

  1. 高性能:在同等資源占用情況下,單服務(wù)提供者的 TPS 要盡量高槽畔。
  2. 低延時(shí):在同等資源占用情況下,服務(wù)調(diào)用延時(shí)要盡量低胁编。
  3. 性能線性增長:如果增加了服務(wù)提供者厢钧,整體性能要能夠線性增長。
  4. 可靠性:服務(wù)注冊中心的可靠性嬉橙,網(wǎng)絡(luò)鏈路的可靠性早直。

4. 服務(wù)治理需要哪些功能?

  1. 服務(wù)運(yùn)行態(tài)監(jiān)控市框,例如通過路由導(dǎo)流霞扬,限流,服務(wù)降級(jí),動(dòng)態(tài)控制超時(shí)時(shí)間喻圃。
  2. 服務(wù)監(jiān)控萤彩,性能統(tǒng)計(jì),報(bào)表斧拍,報(bào)警雀扶。
  3. 服務(wù)生命周期管理
  4. 故障快速定位
  5. 服務(wù)安全

總結(jié)

以上就是在設(shè)計(jì)分布式服務(wù)框架需要注意的地方,例如整體架構(gòu)的設(shè)計(jì)肆汹,框架需要哪些功能愚墓,框架的需要保證哪些性能。同時(shí)昂勉,一個(gè)框架只是可以使用時(shí)不夠的浪册,還需要服務(wù)治理,保證服務(wù)不被腐化岗照,同時(shí)保證服務(wù)的健康议经。

引用

《分布式服務(wù)框架——原理和實(shí)踐》——李林峰

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市谴返,隨后出現(xiàn)的幾起案子煞肾,更是在濱河造成了極大的恐慌,老刑警劉巖嗓袱,帶你破解...
    沈念sama閱讀 211,743評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件籍救,死亡現(xiàn)場離奇詭異,居然都是意外死亡渠抹,警方通過查閱死者的電腦和手機(jī)蝙昙,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,296評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來梧却,“玉大人奇颠,你說我怎么就攤上這事》藕剑” “怎么了烈拒?”我有些...
    開封第一講書人閱讀 157,285評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長广鳍。 經(jīng)常有香客問我荆几,道長,這世上最難降的妖魔是什么赊时? 我笑而不...
    開封第一講書人閱讀 56,485評(píng)論 1 283
  • 正文 為了忘掉前任吨铸,我火速辦了婚禮,結(jié)果婚禮上祖秒,老公的妹妹穿的比我還像新娘诞吱。我一直安慰自己舟奠,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,581評(píng)論 6 386
  • 文/花漫 我一把揭開白布房维。 她就那樣靜靜地躺著沼瘫,像睡著了一般。 火紅的嫁衣襯著肌膚如雪握巢。 梳的紋絲不亂的頭發(fā)上晕鹊,一...
    開封第一講書人閱讀 49,821評(píng)論 1 290
  • 那天,我揣著相機(jī)與錄音暴浦,去河邊找鬼溅话。 笑死,一個(gè)胖子當(dāng)著我的面吹牛歌焦,可吹牛的內(nèi)容都是我干的飞几。 我是一名探鬼主播,決...
    沈念sama閱讀 38,960評(píng)論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼独撇,長吁一口氣:“原來是場噩夢啊……” “哼屑墨!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起纷铣,我...
    開封第一講書人閱讀 37,719評(píng)論 0 266
  • 序言:老撾萬榮一對情侶失蹤卵史,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后搜立,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體以躯,經(jīng)...
    沈念sama閱讀 44,186評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,516評(píng)論 2 327
  • 正文 我和宋清朗相戀三年啄踊,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了忧设。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,650評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡颠通,死狀恐怖址晕,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情顿锰,我是刑警寧澤谨垃,帶...
    沈念sama閱讀 34,329評(píng)論 4 330
  • 正文 年R本政府宣布,位于F島的核電站撵儿,受9級(jí)特大地震影響乘客,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜淀歇,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,936評(píng)論 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望匈织。 院中可真熱鬧浪默,春花似錦牡直、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,757評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至阔加,卻和暖如春饵史,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背胜榔。 一陣腳步聲響...
    開封第一講書人閱讀 31,991評(píng)論 1 266
  • 我被黑心中介騙來泰國打工胳喷, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人夭织。 一個(gè)月前我還...
    沈念sama閱讀 46,370評(píng)論 2 360
  • 正文 我出身青樓吭露,卻偏偏與公主長得像,于是被迫代替她去往敵國和親尊惰。 傳聞我的和親對象是個(gè)殘疾皇子讲竿,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,527評(píng)論 2 349

推薦閱讀更多精彩內(nèi)容