標籤:移動開發
1、前言
前向業務中介層,指的是在後端服務介面之上加了一層,來歸納和整合所有服務,為APP和H5提供介面服務,做到後端業務與前端的隔離。大約如下
650) this.width=650;" src="https://pic2.zhimg.com/v2-2083866bb383ec1b64c4fd46adb68709_b.png" class="origin_image zh-lightbox-thumb" width="1200" alt="v2-2083866bb383ec1b64c4fd46adb68709_b.pn" />
2、作用
1) APP和H5在溝通需求擬定介面協議時,只需要和一個團隊打交道,溝通起來方便。
2)所有業務的出入口,是對業務的整理和集合,查看網關層所有的介面開發曆史,就可以知道業務的發展軌跡
3)統一Log Service,所有APP和H5的請求都是通過網關層接收並轉寄給具體業務的,在網關層記錄日誌,可以真實的類比請求的發起和處理流程。
4)統一流量監控,智能升降級,作為流量統一入口,可以知道流量的具體來源和去向,當流量到達系統極限時可以提前警示,並主動拒絕非核心業務的請求,保證系統不被流量衝垮
5)統一安全驗證,系統不直接暴露,減少了主業務被攻擊的機會,作為請求入口可以在請求開始的時候就做一些安全性的檢查,阻止無效非法請求進入商務程序,浪費資源
6)前後端皆可以做的小的配置性需求可以由該介面完成,舉個例子,你要把你的某一功能做一個開關,這個功能可能是產品突發奇想的點子,後端不願做,就在網關層做吧,避免前後端在這個地方扯皮,扯皮太多太消耗心力,扯皮太多程式員就倦怠了。這一點很重要,身為管理者最重要的就是管理倦怠。
7)後端業務介面適配,將後端流轉的資料結構更改最佳化,方便前端讀取。
3、架構
650) this.width=650;" src="https://pic4.zhimg.com/v2-382aa82cd6e3dea752a68fdee09f3477_b.png" class="origin_image zh-lightbox-thumb" width="1200" alt="v2-382aa82cd6e3dea752a68fdee09f3477_b.pn" />
4、技術要求
1) 開發語言: java/php/node/lua 都可以,不做強制要求,但建議使用php,lua等不用重啟伺服器的語言,方便出現問題及時處理,即時生效
2) 有高並發處理經驗,因為作為所有服務的請求入口,流量會很大
3) 有CDN相關的經驗,很多靜態東西需要推導CDN上
4)有redis 或者 memcache開發經驗,如果沒有這些緩衝所有的請求直接打到伺服器上,伺服器扛不住,很快就掛了
5)多伺服器檔案同步開發經驗,熟練使用log4j等日誌工具
前向業務中介層的意義,架構,技能要求