《架構修煉之道》——第一章-網(wǎng)關之道

api網(wǎng)關

1. 概括

第一章主要介紹了什么是API網(wǎng)關,不同架構場景下網(wǎng)關的功能钝诚,API的生命周期颖御,網(wǎng)關的理論基石“泛化調用”,網(wǎng)關中的管道概念凝颇,介紹了管道的概念潘拱,管道的實現(xiàn),管道的優(yōu)缺點拧略,又引申介紹了責任鏈模式芦岂,介紹了網(wǎng)關宕機的三種情況:cpu滿載、磁盤滿載垫蛆、網(wǎng)路異常禽最,又引申介紹了servlet3中異步從而實現(xiàn)全異步的網(wǎng)關腺怯,最后介紹了網(wǎng)關的脫庫與緩存,概括了網(wǎng)關的七大功能:降級川无、限流呛占、熔斷、線程池隔離懦趋、管道技術晾虑,配置熱更新和異步。

2. 什么是網(wǎng)關

網(wǎng)關是將所有的API的調用統(tǒng)一接入API網(wǎng)關層仅叫,由網(wǎng)關負責接入和輸出帜篇。

網(wǎng)關與代理的區(qū)別:代理是純粹的數(shù)據(jù)透傳,協(xié)議不會發(fā)生變化诫咱;網(wǎng)關在數(shù)據(jù)透傳的背景下笙隙,還會涉及協(xié)議的轉換。

API網(wǎng)關的核心功能包括:統(tǒng)一接入坎缭、協(xié)議適配竟痰、流量管控與容錯、以及安全防護掏呼。

3. API的生命周期

設計→構建→文檔→測試→分析→運行→下線

4. 泛化調用

這里的泛化指的是一個動作凯亮,不使用具體的POJO,直接使用Map這個集合對象來裝配對象哄尔。使用泛化調用以后,我們不需要接口提供方的Jar包即可實現(xiàn)遠程調用柠并。

5. 管道技術

這里的管道不是指操作系統(tǒng)的管道岭接,而是一個抽象的概念,就是把在API網(wǎng)關內的線性的功能(如:參數(shù)校驗臼予、黑白名單鸣戴、流量限制、接口調用等)都等封裝成一個管道粘拾,按照順序組織起來窄锅,消息按照管道池里的排列順序進行。

使用管道的優(yōu)點在于:代碼層次更加清晰缰雇,省去了大量的if-else邏輯判斷入偷;同時可以對這些管道進行熱插拔。

管道的實現(xiàn)思想和責任鏈模式類似械哟。

6. 責任鏈模式

責任鏈模式(Chain of Responsibility Pattern)為請求創(chuàng)建了一個接收者對象的鏈疏之。這種模式給予請求的類型,對請求的發(fā)送者和接收者進行解耦暇咆。這種類型的設計模式屬于行為型模式锋爪。

在這種模式中丙曙,通常每個接收者都包含對另一個接收者的引用。如果一個對象不能處理該請求其骄,那么它會把相同的請求傳給下一個接收者亏镰,依此類推。

責任鏈模式類圖

責任鏈模式與管道技術的區(qū)別在于:管道技術更加靈活拯爽,它是我們自定義的一種方式索抓,責任鏈的使用相對受限。

7. 傳統(tǒng)網(wǎng)關宕機的三種情況

7.1 CPU滿載

cpu利用率:程序運行時期間實時占用的cpu百分比某抓。

cpu負載:一段時間內正在使用和正在等待使用的cpu平均任務數(shù)(top命令)

API網(wǎng)關的訪問量大且依賴系統(tǒng)多纸兔,如果調用的API性能突然變差,在大訪問量的情況下否副,線程數(shù)會逐漸升高汉矿,直至將cpu的資源耗盡,蔓延至整個網(wǎng)關集群备禀,這就是雪崩效應洲拇。

7.2 磁盤滿載

當網(wǎng)關API中日志打印不合理的情況下,一旦API出錯曲尸,就會有大量的error日志寫入磁盤赋续,導致磁盤資源耗盡。

7.3 網(wǎng)絡異常

網(wǎng)絡異常將導致API網(wǎng)關返回給用戶時間變長另患,調用時間變長纽乱,這會導致網(wǎng)關系統(tǒng)的線程數(shù)增多,如果短時間內不能恢復昆箕,則整個網(wǎng)關集群內的cpu都將資源耗盡鸦列。

8. 全異步網(wǎng)關

對于一個API網(wǎng)關來說,它屬于I/O密集型場景鹏倘,我們使用全異步網(wǎng)關使我們無需再關注CPU和網(wǎng)絡薯嗤,全異步網(wǎng)關下線程數(shù)不再會成為網(wǎng)關性能的瓶頸。

9.脫庫和緩存

這里指的脫庫實際上是指的脫離傳統(tǒng)數(shù)據(jù)庫如MySQL纤泵,使用緩存如Redis骆姐,并且利用Redis的過期失效功能實現(xiàn)多級緩存或者使用緩存持久化實現(xiàn)多級緩存。





?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末捏题,一起剝皮案震驚了整個濱河市玻褪,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌涉馅,老刑警劉巖归园,帶你破解...
    沈念sama閱讀 219,427評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異稚矿,居然都是意外死亡庸诱,警方通過查閱死者的電腦和手機捻浦,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,551評論 3 395
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來桥爽,“玉大人朱灿,你說我怎么就攤上這事∧扑模” “怎么了盗扒?”我有些...
    開封第一講書人閱讀 165,747評論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長缀去。 經(jīng)常有香客問我侣灶,道長,這世上最難降的妖魔是什么缕碎? 我笑而不...
    開封第一講書人閱讀 58,939評論 1 295
  • 正文 為了忘掉前任褥影,我火速辦了婚禮,結果婚禮上咏雌,老公的妹妹穿的比我還像新娘凡怎。我一直安慰自己,他們只是感情好赊抖,可當我...
    茶點故事閱讀 67,955評論 6 392
  • 文/花漫 我一把揭開白布统倒。 她就那樣靜靜地躺著,像睡著了一般氛雪。 火紅的嫁衣襯著肌膚如雪房匆。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,737評論 1 305
  • 那天报亩,我揣著相機與錄音坛缕,去河邊找鬼。 笑死捆昏,一個胖子當著我的面吹牛,可吹牛的內容都是我干的毙沾。 我是一名探鬼主播骗卜,決...
    沈念sama閱讀 40,448評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼左胞!你這毒婦竟也來了寇仓?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 39,352評論 0 276
  • 序言:老撾萬榮一對情侶失蹤烤宙,失蹤者是張志新(化名)和其女友劉穎遍烦,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體躺枕,經(jīng)...
    沈念sama閱讀 45,834評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡服猪,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,992評論 3 338
  • 正文 我和宋清朗相戀三年供填,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片罢猪。...
    茶點故事閱讀 40,133評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡近她,死狀恐怖,靈堂內的尸體忽然破棺而出膳帕,到底是詐尸還是另有隱情粘捎,我是刑警寧澤,帶...
    沈念sama閱讀 35,815評論 5 346
  • 正文 年R本政府宣布危彩,位于F島的核電站攒磨,受9級特大地震影響,放射性物質發(fā)生泄漏汤徽。R本人自食惡果不足惜娩缰,卻給世界環(huán)境...
    茶點故事閱讀 41,477評論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望泻骤。 院中可真熱鬧漆羔,春花似錦、人聲如沸狱掂。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,022評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽趋惨。三九已至鸟顺,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間器虾,已是汗流浹背讯嫂。 一陣腳步聲響...
    開封第一講書人閱讀 33,147評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留兆沙,地道東北人欧芽。 一個月前我還...
    沈念sama閱讀 48,398評論 3 373
  • 正文 我出身青樓,卻偏偏與公主長得像葛圃,于是被迫代替她去往敵國和親编整。 傳聞我的和親對象是個殘疾皇子躯嫉,可洞房花燭夜當晚...
    茶點故事閱讀 45,077評論 2 355

推薦閱讀更多精彩內容

  • 來自公眾號:****51CTO技術棧 隨著互聯(lián)網(wǎng)技術的飛速發(fā)展听盖,各類線上業(yè)務蓬勃發(fā)展朦前,軟件系統(tǒng)如雨后春筍般呈現(xiàn)在我...
    為愛放棄一切閱讀 20,992評論 0 89
  • 九、應用級緩存 A.緩存簡介 1.先從緩存中讀取數(shù)據(jù)褥符,如果沒有龙誊,再從慢速設備上讀取實際數(shù)據(jù)并同步到緩存 2.經(jīng)常讀...
    ZyBlog閱讀 4,455評論 0 14
  • 1、API網(wǎng)關 伴隨著業(yè)務數(shù)據(jù)爆炸式的增長和無解開放的思維盛行喷楣,ISV(開發(fā)者包括合作伙伴趟大、開發(fā)者鹤树、中小型商家)需...
    過去今天和未來閱讀 1,043評論 0 0
  • 轉載:京東618大促網(wǎng)關承載十億調用量背后的架構實踐 618大促,我們的網(wǎng)關承載了幾十億的流量和調用护昧,在這種情況下...
    meng_philip123閱讀 1,099評論 0 15
  • 唐代魂迄,賈島,《尋隱者不遇》 松下問童子惋耙,言師采藥去捣炬。 只在此山中,云深不知處绽榛。 賈島是以“推敲”而出名的苦吟詩人湿酸。...
    史介鴻閱讀 156評論 0 0