網關概述

背景:spring

公司內部有不少服務,如消費信貸,帳戶服務,支付服務等,這些服務由公司不一樣部門或團隊維護。若是外部機構想要調用這些接口,須要與不一樣團隊協商接口格式,加解密格式,簽名驗籤格式等調用方式。若是公司有一個統一對外提供服務的網關,統一調用方式,服務調用方和提供方都按照這個標準進行接口調用和開發,就能夠避免技術細節的重複討論,能夠專一於業務層面。json

概述api

統一網關基於spring cloud gateway開發,提供對外訪問內部服務的統一入口,調用方經過一系列斷言和過濾器,路由到不一樣的內部應用系統。流程圖以下:
image.png異步

功能:post

  • 參數校驗:調用方將json格式的請求參數放入request body中,經過http post方式訪問統一網關,請求參數須要遵循統一網關的標準,即包含機構號,銀行號,api名稱,api版本,受權token,防重放nounce,流水號,加密後的業務數據,驗籤數據等字段。若是有未傳入的字段,則認爲是非法請求。
  • 監控:通過參數校驗後,網關把請求異步放入mq,以便對交易進行統計
  • 防重放:一筆交易通過一系列過濾器能夠被轉發到後臺系統,交易被攔截後被重複發送,若是沒有防重放功能,改交易始終會被轉發到後臺,對業務系統形成損害。所以防重放可避免相同的請求重複發送。
  • token校驗:token由機構申請,是機構身份合法性的判斷來源,有效期爲兩個小時,須要定時更新。若是token無效,則認爲是該機構非法
  • 黑白名單:判斷容許和禁止訪問的IP
  • 權限校驗:判斷該筆交易的機構是否具備訪問這個銀行的api的權限
  • 加解密:交易的業務數據在發送前進行加密,統一網關解密驗籤後發送至後臺系統,收到後臺系統響應後再簽名加密返回至調用方
  • 簽名驗籤:加解密是爲了防止數據在傳輸過程當中被發現,簽名驗籤是爲了防止發現後數據被篡改

網關相關的時間:加密

  • 交易的時間戳:由客戶端本身定義
  • 請求時間:進入gateway的時間
  • 響應時間:gateway響應至客戶端的時間

另:spa

  • gateway發日後臺的時間
  • gateway接收後臺響應的時間
  • 告警:進入flink的時間
相關文章
相關標籤/搜索