京東618大促網關承載十億調用量背後的架構實踐

網關: 後端

第一層:接入層。主要負責一些長短連接的接入、限流、黑白名單、路由、負載均衡、容災切換等。這一層所採用的技術是Nginx+lua的方式。緩存

第二層:分發層(或者叫:網關的業務層)。它更多的是NIO+Serviet3異步的技術。負載均衡

    在這一層會作一些數據校驗:簽名的校驗、時間的校驗、和版本、方法等。異步

    緩存的技術,線程隔離、熔斷等技術也都是在這一層實現的。性能

第三層:後端各類各樣的業務API(業務接口)。這些接口經過網關對外進行暴露。lua

 

降級線程

首先,降級開關要集中化管理,好比經過zookeeper推送到各個應用服務。接口

經過多維度的流量控制和降級的策略,好比按照單個API或API+地域、運營商等維度進行控制。一旦出問題了,咱們會把多種組合方式進行降級,還能夠根據秒/分鐘級等不一樣維度進行流量控制,從而達到精細化流量管理。內存

 

熔斷路由

後端系統出現問題了,達到某個閥值了,系統就可以自動進行關閉降級,這是熔斷的大致思路。

靈活的配置

    好比當某個接口接連三次訪問超時或返回錯誤的話就自動熔斷;

    好比連續三次這種方法調用的性能都超過了50毫秒,就會自動對這個方法進行熔斷;

熔斷以後就至關於降級了,再次調用的話會返回失敗,就是直接拒絕返回了。

熔斷恢復

    好比5秒或一分鐘以後出來一個半打開狀態,再次醒來以後,它會去試探一下當天這個服務是否已經OK了,若是沒有問題了,它就會去把你以前熔斷的API業務再次打開,可以正常對外提供服務。

 

監控

  • 第一層:硬件監控。好比系統的CPU內存、網卡等。

  • 第二層:自定義監控。好比直接報警。

  • 第三層:性能監控。好比每一個接口的TP指標,TP999 TP99 TP90 TP50四種性能指標做爲SLA的參考標準,還有可用率等,這個對於網關來講相當重要。

  • 第四層:心跳監控。網關係統線上有不少機器,每一個機器如今的狀況怎樣?有沒有存貨等。

  • 第五層:業務層監控。好比咱們會有一些JVM監控,監控Nginx鏈接數等。

 

 

https://mp.weixin.qq.com/s/6nYROabwFT1o9ppH2TbPhA

相關文章
相關標籤/搜索