91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

.Net微服務架構:API網關

發布時間:2020-07-15 01:27:34 來源:網絡 閱讀:2730 作者:andon_liu 欄目:編程語言
            本人建立了個人技術、工作經驗的分享×××號,計劃后續公眾號同步更新分享,比在此更多具體。歡迎有興趣的同學一起加入相互學習。基于上篇微服務架構分享,今天分享其中一個重要的基礎組件“API網關”。

一、引言

  隨著互聯網的快速發展,當前以步入移動互聯、物聯網時代。用戶訪問系統入口也變得多種方式,由原來單一的PC客戶端,變化到PC客戶端、各種瀏覽器、手機移動端及智能終端等。同時系統之間大部分都不是單獨運行,經常會涉及與其他系統對接、共享數據的需求。所以系統需要升級框架滿足日新月異需求變化,支持業務發展,并將框架升級為微服務架構。“API網關”核心組件是架構用于滿足此些需求。

  很多互聯網平臺已基于網關的設計思路,構建自身平臺的API網關,國內主要有京東、攜程、唯品會等,國外主要有Netflix、Amazon等。

二、業界相關網關框架

  業界為了滿足這些需求,已有相關的網關框架。

  1、基于nginx平臺實現的網關有:KONG、API Umbrella

  2、自研發的網關有:apigee、Zuul

三、API網關設計

  API網關是微服務架構(Microservices Architecture)標準化服務的模式。API網關定位為應用系統服務接口的網關,區別于網絡技術的網關,但是原理則是一樣。API網關統一服務入口,可方便實現對平臺眾多服務接口進行管控,對訪問服務的身份認證、防報文重放與防數據篡改、功能調用的業務鑒權、響應數據的脫敏、流量與并發控制,甚至基于API調用的計量或者計費等等。組件設計如下:

.Net微服務架構:API網關

                                                    圖1- API網關功能結構示意圖

  多種客戶端程序,例如:移動APP、PC端和智能終端設備等。客戶端程序通過互聯網或者專網訪問API網關,由API網關統一接收請求后,通過一系列模塊定位具體處理的微服務機,并將其轉發至目標服務處理,網關與微服務之間通信是內部局域網。API網關統一規范平臺對外的服務,同時充當了平臺的PaaS層。如上圖所示,API網關功能結構基于管道模型和支持可插拔式的設計開發,提供統一基于http協議的WebAPI訪問接口,內部每個模塊各自實現功能,包括:黑白名單、日志、協議適配、身份認證、計流限流及路由。并且依賴“訪問認證中心、服務發布管理中心”分別實現API網關訪問權限控制和定位目標微服務。各模塊功能說明如下:

  1、黑白名單:實現通過IP地址控制禁止訪問網關功能,此功能是應用層面控制實現,再往前也可以通過網絡傳輸方面進行控制訪問。

  2、日志:實現訪問日志的記錄,可用于分析訪問、處理性能指標,同時將分析結果支持其他模塊功能應用。

  3、協議適配:實現通信協議校驗、適配轉換的功能。

  4、身份認證:負責網關訪問身份認證驗證,此模塊與“訪問認證中心”通信,實際認證業務邏輯交移“訪問認證中心”處理。

  5、計流限流:實現微服務訪問流量計算,基于流量計算分析進行限流,可以定義多種限流規則。

  6、路由:路由是API網關很核心的模塊功能,此模塊實現根據請求,鎖定目標微服務并將請求進行轉發。此模塊需要與“服務發布管理中心”通信。“服務發布管理中心”實現微服務發布注冊管理功能,與其通信獲得目標微服務信息。

四、API網關部署

  API網關是一個公共基礎組件,無狀態,可支持多套分布式部署。如下圖所示:
.Net微服務架構:API網關

                                                     圖2- API網關部署示意圖

五、API網關實現技術

  1、技術:框架整體基于.NET平臺構建,所以API網關也暫定基于.NET4.6平臺和ASP.NET WebAPI2.0框架實現。具體軟件架構就用上一篇所介紹的。

  2、性能:部署于IIS7.0,1000個并發查詢請求,平均響應90ms。

  可能在IIS7.0和.Net4.6平臺,在大并發性能處理上會更不上,后續將考慮基于.net core進行升級開發,并部署于Linux平臺。

  API網關主要原理是相通,不同平臺結合本身平臺整體框架設計,可選用不同的技術實現,目前有些基于Spring MVC、node.js、Erlang技術進行研發。

六、結語

  以上是對API網關概要進行設計,還有其他方面的內容此篇文章未討論,例如:安全性、高并發、擴展性等特性設計,同時作為平臺其中一個組件,也涉及與其他組件一并協同運行。此塊內容會后續分享。

作者:劉蔡濤

公眾號:【51dotnet】.Net微服務架構:API網關

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

澎湖县| 苏尼特左旗| 高陵县| 普兰县| 江山市| 从江县| 富川| 德钦县| 新津县| 中阳县| 林州市| 修武县| 定远县| 洞头县| 融水| 尉犁县| 阿城市| 天祝| 丁青县| 罗甸县| 沭阳县| 汕头市| 甘德县| 沂水县| 五台县| 平阳县| 余干县| 东莞市| 镇康县| 永平县| 固安县| 鹰潭市| 齐齐哈尔市| 大丰市| 二连浩特市| 裕民县| 司法| 子洲县| 蓝山县| 焦作市| 杭锦后旗|