天天看點

架構-億級API網關之道

你的收入水準很大程度上取決于你能做哪些别人不能做的事情。

架構-億級API網關之道

一、API網關包括的基本功能:統一接入、協定适配、流量管控與容錯以及安全防護。

二、API的常用工具:RAML、Swagger

三、API的生命周期:Design(設計)、Build(建構)、Test(測試)、Document(文檔)、Share(釋出)、run(運作)、DownLine(下線)。

四、網關系統的七種武器:降級、限流、熔斷、配置熱更新、異步、線程池隔離、管道技術

五、導緻傳統網關性能的瓶頸:

1、CPU

CPU使用率:顯示的是程式在運作期間實時占用的CPU百分比

CPU負載:顯示一段時間内正在使用和等待使用CPU的平均任務數,可以使用uptime或top指令來檢視系統的負載情況,eg:uptime指令,顯示load averages:1.74 1.58 1.60 ,三個數字分别表示1分鐘、5分鐘、15分鐘内系統的負載平均值。

注意:CPU負載高并不意味CPU的使用率高,兩者沒有聯系,可以比作負載是排隊,使用率是醫生看病,不能說排隊長,醫生看病的速度就快。

2、記憶體

緩沖、緩存及記憶體計算,記憶體越大計算速度就越快,使用free、top、vmstat等指令都能顯示系統記憶體使用率的輸出

3、磁盤

磁盤使用率:磁盤空間使用情況

磁盤負載百分比:磁盤頻繁執行I/O請求數量,使用iostat -x 1 10 指令,顯示%util接近100%說明産生的I/O請求太多,I/O已經滿負荷,該磁盤可能存在瓶頸。

4、網絡

網絡的品質好壞,直接影響使用者的響應時間,如果網絡變慢,請求數量過大就會導緻請求任務數排隊擠壓,将所有CPU資源耗盡。

六、其它提升性能方式

1、脫庫與多級緩存

對網關的通路不建議直接使用傳統資料庫(eg:mysql),而是建議利用緩存。

緩存分級,1級緩存(JVM緩存)、2級緩存(Redis)、3級緩存(Redis持久化)

2、熱更新

不需要重新開機伺服器就能夠讓程式的屬性值進行改變的行為;

常見的熱更新的方法有MQ方式、RPC方式和ZooKeeper方式,MQ方式是将需要更新的資料發送到MQ隊列,消費端收到資料後更新對象的屬性值,RPC方式的直接連接配接到對應的伺服器,服務端收到RPC請求之後更新資料,Zookeeper的方式是接收更新進而觸發本地對象資料,這些方式都不需要重新開機伺服器。