日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

什么是網(wǎng)關,網(wǎng)關的作用是什么?

 回家的夢想 2019-05-10

廣義上的網(wǎng)關或者說物理級別的網(wǎng)關是指在網(wǎng)絡層上以實現(xiàn)網(wǎng)絡互連,是兩個高層協(xié)議不同的網(wǎng)絡互連。作為大狂客程序員,看到網(wǎng)關第一想到的是spring cloud 的gateway。今天主要向大家介紹軟件行業(yè)分布式系統(tǒng)中網(wǎng)關的含義作用以及使用過程中的注意事項。

geteway定義以及作用

官網(wǎng)上這么說的,This project provides a library for building an API Gateway on top of Spring MVC. Spring Cloud Gateway aims to provide a simple, yet effective way to route to APIs and provide cross cutting concerns to them such as: security, monitoring/metrics, and resiliency。(該項目為我們提供一個在springmvc上構建網(wǎng)關API的代碼庫,為我們提供一種簡單高效安全的api。主要包括的功能有路由轉發(fā)、權限校驗、限流控制等)。在簡單了解了spring-cloud的網(wǎng)關定義之后,我簡單說下使用場景以及意義。在分布式系統(tǒng)中,內(nèi)部服務之間通過api訪問,spring-cloud提供feign的restapi訪問方式,內(nèi)網(wǎng)訪問不存在安全隱患,對外提供服務時,需要一個道門專門來做內(nèi)外網(wǎng)環(huán)境隔離以及對外部請求的過濾。在這個背景下geteway因用而生了(替代了上個版本的zuul)。

核心實現(xiàn)思路

filter(過濾器),網(wǎng)關是在內(nèi)部調(diào)用程序外圍添加一個帶各種過濾器的spring-boot的項目,同樣會在注冊中心注冊。在各種不同的過濾器中提供各個不同功能的API接口。

核心功能

  1. 內(nèi)外網(wǎng)隔離,外網(wǎng)所有請求都只能通過網(wǎng)關訪問內(nèi)網(wǎng)數(shù)據(jù);防止網(wǎng)關單點,最好在不同大區(qū)配置多臺網(wǎng)關服務器。

  2. 驗證+鑒權,外網(wǎng)所有請求,通過網(wǎng)關指定過濾器對用戶訪問權限進行控制??梢哉螼Auth2,token,jwt等提高架構安全性。

  3. 服務降級+限流+日志+監(jiān)控。限流算法如令牌桶、漏桶等,Spring Cloud Gateway使用Redis+Lua技術實現(xiàn)高并發(fā)和高性能的限流方案。簡單介紹一下幾個限流算法:令牌桶算法:

    令牌桶算法:

    假如用戶配置的平均速率為r,則每隔1/r秒一個令牌被加入到桶中;假設桶最多可以存發(fā)b個令牌。如果令牌到達時令牌桶已經(jīng)滿了,那么這個令牌會被丟棄;當一個n個字節(jié)大小的數(shù)據(jù)包到達,將從桶中刪除n個令牌,接著數(shù)據(jù)包被發(fā)送到網(wǎng)絡上;

    如果令牌桶中少于n個令牌,那么不會刪除令牌,并且認為這個數(shù)據(jù)包在流量限制之外;

    算法允許最長b個字節(jié)的突發(fā),但從長期運行結果看,數(shù)據(jù)包的速率被限制成常量r。對于在流量限制外的數(shù)據(jù)包可以以不同的方式處理:

    它們可以被丟棄; 它們可以排放在隊列中以便當令牌桶中累積了足夠多的令牌時再傳輸; 它們可以繼續(xù)發(fā)送,但需要做特殊標記,網(wǎng)絡過載的時候?qū)⑦@些特殊標記的包丟棄。

    漏桶算法:

    漏桶算法的描述如下:

    一個固定容量的漏桶,按照常量固定速率流出水滴; 如果桶是空的,則不需流出水滴; 可以以任意速率流入水滴到漏桶; 如果流入水滴超出了桶的容量,則流入的水滴溢出了(被丟棄),而漏桶容量是不變的。

  4. 路由+數(shù)據(jù)整合。

注意事項

網(wǎng)關是外部網(wǎng)絡訪問內(nèi)部服務器的唯一通道,存在單點故障問題,需要部署集群解決;所有的請求都通過網(wǎng)關訪問,網(wǎng)關壓力會非常大,需要系統(tǒng)做全面的壓力測試,并根據(jù)業(yè)務需求對網(wǎng)關進行拆分,以減小網(wǎng)關壓力,降低不同業(yè)務的耦合度。


    本站是提供個人知識管理的網(wǎng)絡存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權內(nèi)容,請點擊一鍵舉報。
    轉藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多