精品动漫一区二区三区-97超碰在-夜夜摸视频网-国内av在线-国产国拍亚洲精品av-亚洲日本一本dvd高清-亚洲a精品-欧美交a欧美精品喷水-免费黄色小视频网站-国产熟睡乱子伦视频-免费av观看-无码超级大爆乳在线播放-亚洲成人av片-国产va在线-japanese国产

深度解讀:企業級微服務架構中的API網關設計
金融科技
2021.10.14

前言:長亮科技API網關自誕生以來,已在交通銀行、渤海銀行、民生銀行信用卡、北農商等幾十家金融客戶項目應用,在高性能和高可靠方面經歷了大量的生產實踐考驗。


隨著微服務架構的發展,原本粗粒度的應用被拆分為眾多細粒度的微服務,每個服務都有其需要對外暴露的API服務,服務之間的調用變得錯綜復雜,微服務及其API的統一管理、API的安全防范、流量轉發、流量治理等問題變得尤為突出。


破局—引入API網關


如何解決這些問題?


那就需要在客戶端和服務之間引入一個額外層,作為從客戶端向服務發起請求路由的反向代理,類似面向對象設計中的外觀模式,為封裝底層系統架構的API提供了一個單一入口,稱為API網關。


簡而言之,API網關就是用一套單一且統一的API入口點,來組合一個或多個內部API。通過引入API網關,能夠對API的生命周期進行統一管理,API網關接管所有的入口流量,將所有用戶的請求轉發給后端的服務器。


但網關做的僅僅是轉發這么簡單嗎?


當然不是,API會針對流量做一些治理(如鑒權、限流、權限、熔斷、協議轉換、錯誤碼統一、緩存)、流量監控(如日志、監控、告警)、安全防范(如協議安全、訪問安全、報文安全等),將通用的邏輯抽出來,由網關統一去做,業務方也能夠更專注于業務邏輯,提升迭代的效率,其重要性可見一斑。

API網關可為微服務架構系統帶來多項價值:


? 網關層對外部和內部進行了隔離,保障了后臺服務的安全性

? 對外訪問控制由網絡層面轉換成了運維層面,減少變更的流程和錯誤成本

? 減少客戶端與服務的耦合,服務可以獨立發展。通過網關層來做映射

? 通過網關層聚合,減少外部訪問的頻次,提升訪問效率

? 節約后端服務開發成本,減少上線風險

? 為服務熔斷,灰度發布,線上測試提供簡單方案

? 便于進行應用層面的擴展


因此作為流量的入口,網關本身的高性能、高可用、可擴展性等非功能特性也至關重要。


長亮科技API網關依賴其良好的擴展性,在功能上不斷完善豐富,對接了眾多內外部的系統,擴展了多種接入接出協議;支持多種流量治理策略,提供較為全面的安全防控手段。


下面將從API網關總體設計、API治理設計、API安全防范三方面詳細分析長亮科技API網關的設計實踐。


長亮科技API網關總體設計


1、技術架構設計——最大功能上解耦


目前市面上基本都是一個服務,沒有做到最大功能上的解耦,在此基礎上長亮科技全面創新,將網關服務分為管控端和運行端兩部分,單獨運行,讓網關運行服務脫離外界依賴,真正將gateway最大化限度的解耦。


API網關采用前后端分離架構模式,以Java語言開發,選用當前主流技術棧Spring Boot,Spring Cloud體系。


? 管控端主要作用為管理網關配置、UI交互、推送數據到網關運行端等,管控端和服務端分工明確,讓真正負責處理請求的網關運行端,爭取資源最大化。

? 網關運行端為真正被調用的網關服務,核心機制為過濾器鏈機制、接入接出機制、配置數據jvm緩存及本地緩存機制等;網關運行端對接了多種基礎組件,包括監控中心、注冊中心、鏈路中心、日志中心、配置中心等。為保證用戶配置的參數出現推送丟失的情況,網關運行服務還會定時向網關管控服務拉取數據,達到雙向數據同步效果。


 

2、高擴展性的設計——提供更全的擴展


網關運行端采用了SPI機制,大大的增加了網關的擴展性,除市面上都支持的Fileter擴展、治理功能的擴展外,長亮科技還可提供接入接出(協議)的擴展,加解密方式、報文等多處位置的擴展,大大增加了網關的可擴展點:


? Filter擴展

網關的功能在整個項目中屬于一個過濾器鏈,可通過頁面動態配置對網關的各個過濾器選擇是否使用;如增加某種認證機制等,也就是針對過濾器鏈進行擴展。

? 接入接出擴展

在現有網關多協議基礎上,擴展一種接入接出協議,如dubbo、TSF等;

? 加解密擴展

擴展新的算法和規則,對請求響應報文加解密、加驗簽;

? 網關請求響應二次擴展

支持在網關層面對接入的請求,接收的響應進行修改;

? 擴展網關響應碼及響應信息

對網關響應碼和響應信息的擴展,用以適配各種不同的響應碼響應格式要求。


 除Filter擴展是在過濾器中進行擴展,其余擴展均是針對inbound和outbound進行擴展。


3、高可用設計——更易管理和維護的邏輯集群劃分


網關分為管控端(數據控制)和運行端(API調用)兩個服務,且單獨運行,運行端采取本地緩存存儲信息不需要任何讀庫操作,在管控端Down機情況下,仍可以繼續進行API調用。

 


網關服務器采用無狀態集群架構,一個網關集群可以包含多個網關實例,集群可以作為邏輯上的實例分類,每個實例只對應一個網關管控端,防止數據混亂。相對市面上普遍使用的物理上集群劃分,這種邏輯集群劃分則更好管理和維護。 


           

網關管控端會主動向運行端發送心跳檢測,同時網關運行端會定時向管控端進行數據同步,預防管控端數據同步異常導致的不一致。

     

       

客戶端通過負載均衡器訪問網關實例,負載均衡器可采用軟負載或硬負載方式,負載均衡器可使用MS架構避免單點故障。


           

API治理設計


1、API限流

限制API被訪問的次數,保證服務在可承受壓力內正常運行,防止因過高流量導致服務發生崩潰,分布式限流采取分布式緩存Redis實現。


當請求進入RateLimiter Filter 限流過濾器時,會先根據當前的請求構建一組Key,然后判斷Redis是否可用,當其可用時使用Redis進行集群限流:


? 先判斷當前實例的緩存是否有該key,如果存在則請求redis lua腳本,腳本中會對遍歷到的規則執行 incr rule,給對應的規則自增1,并判斷返回值,如果返回值小于等于最大值,則允許通過,否則拋出限流異常。

? 當Redis不可用時,則使用JVM級別的實例限流。會直接從當前實例的緩存中獲取一個Semaphore信號量,并嘗試獲取其許可,當獲取成功則表示限流通過,反之拋出限流異常。



2、熔斷降級

當服務故障時,為了防止整個系統的故障,對系統采取熔斷降級策略??筛鶕骄憫獣r間、秒級異常比例、分鐘級異常數等維度進行熔斷降級處理。


熔斷降級的三種維度:

? 平均響應時間:如在1s內連續處理5個請求,它的平均響應時間都超過閾值,那么在后續的時間窗口中,對于這個API的調用都會自動熔斷或降級。

? 異常比例:當指定資源每秒請求量大于等于5,并且每秒的異常總數占通過量的比值超過閾值之后(如每秒處理1000個請求,那么其中異常請求數為500,那么當前的比值是50%),那么該資源會進入降級狀態。異常的比率范圍是[0.0.1.0]表示0%到100%。

? 異常數:當資源在1分鐘的異常數據超過閾值后會進行熔斷或降級針對這些規則。

 


3、API路由


API路由指根據調用將調用路由對不同的后端服務、網關支持基于客戶端IP、比例、調用者、自定義方式進行路由,同時支持配置優先級。


API路由的四種模式:

? IP模式:根據不同IP路由到不同的服務提供者實例。

? 關鍵字模式:通過在請求頭或者查詢參數中的關鍵字進行路由。

? 租戶模式:不同租戶路由不同的服務提供者。

? 比例模式:設置不同的比例進行路由,例如實例A消化掉90%的API調用,實例B消化掉10%的API。


 

API安全防范


1、協議安全

為保證訪問API過程中的安全問題,API網關在設計上增加了對https的支持,可直接使用https的訪問方式訪問網關中的API。


2、訪問安全

   很多情況下,API都直接暴露在公網,所以很可能會出現被惡意訪問,而網關要做的就是防止這種惡意訪問的出現。通過訪問JTW認證、權限控制、簽名認證、黑白名單等手段來降低API被惡意訪問的風險。


相對單一的訪問安全方式,長亮科技的訪問安全更為全面,且在除現有的幾個訪問安全外,仍可繼續擴展其他安全手段。


? 權限控制:只有通過管理員授權的接口,客戶端才有權限訪問 。如果未授權,在網關處攔截,響應給客戶端沒有訪問權限。

? 簽名認證:按規則將請求參數通過SHA256算法|RSA|國密等運算生成簽名值,網關對客戶的簽名進行驗簽,驗簽成功后繼續往下,否則直接被攔截。

? 黑白名單:按黑白名單的配置進行驗證,如果在黑名單中,則直接攔截,不在黑名單中可繼續往下。

? JWT認證:在訪問API前先向網關申請一個Token,每次API訪問時帶入這個Token,網關則會對Token解析,主要包括Token有效期驗證、訪問權限驗證、訪問者身份認證;通過后繼續往下,否則直接攔截。


3、報文安全

在客戶端調用API時,傳入報文的安全是至關重要的,網關在這塊通過報文的加密/加簽的方式確保報文的安全性。


? 加密:通過對報文的加密確保訪問過程中報文的安全性;除現支持的AES、DES、RSA、國密方式外,并可以通過SPI的機制,擴展其他的加解密方式。

? 加簽:通過對報文的加簽確保報文在訪問過程中的完整性,除現支持的RSA、SHA256、國密方式外,也可以通過SPI的機制,擴展其他加簽方式。


4、流量安全

網關作為所有應用的一個入口,承載著海量流量的訪問,以及隨時可能爆發的惡意流量攻擊的壓力。因此流量控制是網關安全中必須的一環,以保證服務的正常運行,防止服務因過高流量導致服務發生崩潰。


總結


在豐富的金融客戶實踐中,長亮科技認為,API網關作為企業能力開放的一個門戶,除了具備基本的請求轉發、協議轉換、路由、安全控制等功能,以及高性能和高穩定性外,還需具備良好的擴展性,以便于網關能力的不斷增強。在網關實施過程中,要規劃好網關層與服務層的交互方式,盡量使得網關層與服務層解耦,便于各個團隊工作的獨立性;同時在API的管理上,需要提供API全生命周期的發布、配置、鑒權、流控、監控等配套的管理功能。


無論是微服務、分布式架構,還是網格化服務架構,API網關都是不可或缺的部分,隨著各服務之間的流量變化呈現出爆發性的增長,API網關作為系統的入口,將在提升系統的性能和可靠性中承擔著越來越重要的作用。


分布式
讓中國金融科技 具有世界影響力
長亮科技更懂如何為您的數字化轉型賦能
主站蜘蛛池模板: 久久久久中文伊人久久久 | 国产欧美日韩在线观看一区二区 | 精品久久人妻av中文字幕 | 免费看内射乌克兰女 | 色偷拍 自怕 亚洲 10p | 131mm少妇做爰视频 | 亚洲国产精品久久艾草纯爱 | 伊人精品成人久久综合全集观看 | 黄色a免费 | 亚洲欧美日韩另类精品一区 | 国产精品水嫩水嫩 | 亚洲视频三区 | 毛片综合 | 欧美大胆作爱视频欣赏人体 | 日本成人免费在线 | 中文天堂在线资源 | 日本视频一区二区 | 中文字幕一区二区三区四区五区 | 男女猛烈拍拍拍无挡视频 | 久久老子午夜精品无码怎么打 | 同性男男黄g片免费网站 | 黑人巨茎美女高潮视频 | 中日韩欧美在线观看 | 又色又爽又黄无遮挡的免费视频 | 国产一区日韩二区欧美三区 | 国产乱色国产精品免费视频 | 亚洲精品av无码喷奶水糖心 | 亚洲成色在线综合网站2018 | 91在线视频在线观看 | 久久久一级 | 婷婷的五月 | 狠狠操中文字幕 | 精品人妻久久久久久888 | 波多野结衣小视频 | 久久婷婷香蕉热狠狠综合 | 中文字幕手机在线看片不卡 | 亚洲精品久久久久午夜福利 | 亚洲精品无码久久千人斩 | 久久久男人天堂 | 一本一道精品欧美中文字幕 | 日本乱码一区二区 | 亚洲人成网站18禁止一区 | 亚洲 丝袜 制服 欧美 另类 | 国产丝袜第一页 | 国产在线精品无码二区二区 | 激情国产一区二区三区四区 | 欧美精品一区二区视频 | 99久久99久久加热有精品 | 在线视频二区 | 亚洲精品色播一区二区 | 成人毛片在线精品国产 | 欧美一级精品 | 中文字幕手机在线视频 | 亚洲亚洲人成网站网址 | 四虎永久免费观看 | 久一视频在线 | 欧美精品v国产精品v日韩精品 | 亚洲国产一区二区三区a毛片 | 成人午夜视频在线播放 | 亚洲最大黄色 | 超碰在线免费公开 | 在线最新av免费费观看 | 精品人妻中文字幕有码在线 | x88av在线| 日日日操| 成本人h无码播放私人影院 2019天天干天天操 | 嫩草伊人久久精品少妇av | 天天色综合久久 | 国产综合精品久久 | 色八区人妻在线视频免费 | 高潮又爽又无遮挡又免费 | 國产一二三内射在线看片 | 国产又爽又大又黄a片另类软件 | 一本色道久久88—综合亚洲精品 | 国产精品人妻久久毛片高清无卡 | 蜜桃av中文字幕 | 日韩精品无码熟人妻视频 | 色香欲天天影视综合网 | 日本免费一二三区 | julia无码中文字幕一区 | 99蜜桃在线观看免费视频网站 | 国产无遮挡免费真人视频在线观看 | wwwww国产| 久久狠狠色噜噜狠狠狠狠97 | 中国美女毛片 | 激情中文小说区图片区 | 精品人妻少妇一区二区三区 | 国产人澡人澡澡澡人碰视频 | 玩弄人妻奶水无码av在线 | 欧美色图888 | 狠狠操女人 | 免费无码黄真人影片在线 | 曰曰操| 亚洲精品社区 | 国产成人综合色就色综合 | 久久久久1 | 中文字幕日韩精品欧美一区蜜桃网 | 天天天干干干 | 91久久精品一区二区别 |