閘道器解釋一
探索隊員:閘道器(gateway)有各種不同的種類呢。
探索隊長:是啊。
隊員:話說,gateway這個詞到底是什麼意思啊?
隊長:在問別人之前呢……
隊員:我知道,我現在就查字典。唔,字典上說是牆上的像門一樣的入口。
隊長:沒錯,入口的裡面是什麼呢?
隊員:裡面?是什麼呢?天堂?
隊長:天堂……怎麼說呢,不算對也不算錯吧,總之,入口的裡面是和外面不一樣的世界。
隊員:噢……
隊長:通往異世界的入口就是gateway啦。
隊員:怎麼感覺像問禪一樣的……
隊長:哪有。要不我們還是舉個例子吧。web伺服器有一種叫cgi(common gatewayinte***ce,通用閘道器介面)的功能,這又是什麼東西呢?
隊員:web伺服器執行cgi程式,然後cgi程式處理使用者發來的資料對吧?
隊長:從web伺服器的角度來看確實如此,但如果從客戶端傳送的訊息的角度來看呢?
隊員:訊息首先會到達web伺服器。
隊長:沒錯,然後呢?
隊員:然後……會進入web伺服器中,接著又會進入cgi程式中,是嗎?
隊長:沒錯。準確來說,cgi指的不是cgi程式本身,而是連線程式與web伺服器程式的介面規格。所以說,客戶端傳送的訊息是通過cgi這樣乙個介面,從web伺服器程式進入cgi程式的。
隊員:原來如此。那麼這個介面就是通往cgi程式這個異世界的入口咯?
隊長:看來你總算是有點長進了。除了cgi之外,還有其他一些通往異世界的入口,這些都叫gateway。
隊員:那麼tcp/ip設定視窗中的預設閘道器也是一種gateway咯?
隊長:這裡的閘道器就是路由器的意思。
隊員:那麼為什麼不叫預設路由器,而是叫預設閘道器呢?
隊長:因為一開始並沒有路由器這個詞,那時候是管路由器叫閘道器的。從某種角度來說,路由器就是通向另乙個網路的入口,所以預設閘道器的叫法也是那時候遺留下來的。
隊員:這樣啊,那後來為什麼又出來路由器這個詞了呢?
隊長:以前,對於相當於路由器這樣的東西,有很多不同的叫法。tcp/ip中叫閘道器,tcp/ip之外的路由器又有別的叫法。即便是現在,像交換機、集線器之類的叫法也不是很明確呢,是不是?
隊員:這樣下去可不行呢。
隊長:我覺得也是。所以說,後來就統一叫路由器了。
隊員:原來如此。那現在的交換機、集線器之類的名字能不能也統一一下呢?
隊長:跟我說也沒用啊。隊員:別這樣嘛,幫幫忙吧!
閘道器解釋二
1.前序
對於閘道器,從專業角度,一般運維和網路管理員會比較了解一下。但作為乙個軟體開發人員,我覺得也是有必要了解一下。尤其是在某次面試過程當中,被面試官問起後,感覺回答的不是很好,導致面試扣分。所以今天,帶著學習和分享的想法,一起扒一扒閘道器的秘密。
2.閘道器
2.1 什麼是閘道器?
閘道器英文名稱為gateway,又稱網間聯結器、協議轉換器。閘道器在網路層以上實現網路互連,是最複雜的網路互連裝置,僅用於兩個高層協議不同的網路互連。
閘道器既可以用於廣域網互連,也可以用於區域網互連。 閘道器是一種充當轉換重任的計算機系統或裝置。使用在不同的通訊協議、資料格式或語言,甚至體系結構完全不同的兩種系統之間,閘道器是乙個翻譯器,與網橋只是簡單地傳達資訊不同,閘道器對收到的資訊要重新打包,以適應目的系統的需求。
通俗點形容,從乙個房間走到另乙個房間,必然要經過一扇門。同樣,從乙個網路向另乙個網路傳送資訊,也必須經過一道「關口」,這道關口就是閘道器。顧名思義,閘道器(gateway)就是乙個網路連線到另乙個網路的「關口」。也就是網路關卡。
2.2 閘道器的作用是什麼?
簡單來說,閘道器是裝置與路由器之間的橋梁,由它將不同的網路間進行訪問的控制,轉換,交接等等。
比如有網路a和網路b,網路a的ip位址範圍為「192.168.1.1~192. 168.1.254」,子網掩碼為255.255.255.0;網路b的ip位址範圍為「192.168.2.1~192.168.2.254」,子網掩碼為255.255.255.0。在沒有路由器的情況下,兩個網路之間是不能進行tcp/ip通訊的,即使是兩個網路連線在同一臺交換機(或集線器)上,tcp/ip協議也會根據子網掩碼(255.255.255.0)判定兩個網路中的主機處在不同的網路裡。而要實現這兩個網路之間的通訊,則必須通過閘道器。如果網路a中的主機發現資料報的目的主機不在本地網路中,就把資料報**給它自己的閘道器,再由閘道器**給網路b的閘道器,網路b的閘道器再**給網路b的某個主機(如附圖所示)。網路b向網路a**資料報的過程。
2.3 閘道器的工作流程
通俗解釋:
假設你的名字叫小不點,你住在乙個大院子裡,你的鄰居有很多小夥伴,在門口傳達室還有個看大門的李大爺,李大爺就是你的閘道器。當你想跟院子裡的某個小夥伴玩,只要你在院子裡大喊一聲他的名字,他聽到了就會回應你,並且跑出來跟你玩。
但是你不被允許走出大門,你想與外界發生的一切聯絡,都必須由門口的李大爺(閘道器)用**幫助你聯絡。假如你想找你的同學小明聊天,小明家住在很遠的另外乙個院子裡,他家的院子裡也有乙個看門的王大爺(小明的閘道器)。但是你不知道小明家的**號碼,不過你的班主任老師有乙份你們班全體同學的名單和**號碼對照表,你的老師就是你的dns伺服器。於是你在家裡撥通了門口李大爺的**,有了下面的對話:
小不點:李大爺,我想找班主任查一下小明的**號碼行嗎?
李大爺:好,你等著。(接著李大爺給你的班主任掛了乙個**,問清楚了小明的**)問到了,他家的號碼是211.99.99.99
小不點:太好了!李大爺,我想找小明,你再幫我聯絡一下小明吧。
李大爺:沒問題。(接著李大爺向**局發出了請求接通小明家**的請求,最後一關當然是被轉接到了小明家那個院子的王大爺那裡,然後王大爺把**給轉到小明家)
就這樣你和小明取得了聯絡
2.4 軟體系統閘道器
系統與系統之間,服務的請求與返回也有閘道器,我們可以理解為「系統閘道器」。與廣義上的閘道器,所指含義可能不同,但所要發揮的作用,卻如出一轍。
軟體系統閘道器作用:
內外網隔離,外網所有請求都只能通過閘道器訪問內網資料;防止閘道器單點,最好在不同大區配置多台閘道器伺服器。
驗證+鑑權,外網所有請求,通過閘道器指定過濾器對使用者訪問許可權進行控制。可以整合oauth2,token,jwt等提高架構安全性。
服務降級+限流+日誌+監控。限流演算法如令牌桶、漏桶等,spring cloud gateway使用redis+lua技術實現高併發和高效能的限流方案。
SpringCloud閘道器gateway超時排查
如圖所示,運營人員反饋線上偶發性出現異常,然後我們獲取一筆單來看,發現閘道器超時。系統用的是springcloud閘道器gateway作為服務 出現超時的ip和專案部署伺服器的ip並不是同乙個ip,假設上面異常 10.10.10.11,而專案部署伺服器的ip 10.20.10.11,明顯不一致導致,...
gateway閘道器筆記
gateway在專案中充當閘道器的作用 使用可看spring官方文件 projects spring cloud learn spring cloud gateway reference doc.route 路由 predicate 斷言 filter 過濾器 配置方式 spring cloud g...
Gateway閘道器設計 一
閘道器gateway,它負責與客戶端建立連線,接收客戶端傳送過來的訊息,並對訊息進行驗證,等。1,閘道器的功能 1.1 與客戶端建立連線 這個應該是閘道器最基本的網功了,乙個服務做為閘道器,所有客戶端來的訊息都必須先到達這裡。客戶端與閘道器採用tcp長連線。1.2 訊息過濾 客戶端可能給伺服器傳送任...