Featured image of post 初探微服務 何謂網關(Gateway)

初探微服務 何謂網關(Gateway)

從零開始的微服務

前言

新的工作充滿著各種類型的微服務架構,讓我頓時間有點分不清南北,於是就利用這段剛入職,還很閒的時候帶薪學習吧!

為什麼要用網關?

sliders-gateway-gif

微服務的架構中,每個業務都需要授權、限流、處理跨域請求,如果每個功能都各自為棧,自己的輪子自己造,會非常厲害!但有些東西是可以抽出來,放到一個統一的地方去維護。另外來說,微服務中,如果每個微服務都分配一個域名,這樣子會非常難以維護客戶端的Code,因為涉及到數百個域名,另一方面是連接數量的瓶頸,想像一下如果你打開一個網站,結果發現光開啟網站就涉及了數百個RPC(Remote Procude Call),這樣會非常低效,各何況Address存在集群(Cluster)的情況下,那麼複雜度會成幾何增長。

沒有使用網關的調用

image-20230914114823226

使用網關的調用

不用直接去請求微服務,可以透過Gateway來訪問

image-20230914114856668

image-20230914115426323

何謂默認網關

所謂的默認網關就只是讓設備可以透過網路,和一端設備溝通的東西

image-20230914120600654

那麼相同網域的電腦如果要相互溝通,則只需要透過switch就可以,因為他們的數據不需要通過Gateway傳出去

image-20230914120640698

那麼接下來就有一個問題了,我要跟A電腦溝通,但我如何知道A電腦和我是否處在同一個網域中呢?

IP地址與子網遮罩

一個Ip位址包含兩個部分

  1. Network Address
  2. Host Address

而區分哪個部分屬於網際網路與本地主機的方式,則是透過子網遮罩

image-20230914121310549

所謂子網路遮罩,是這段看起來有點像ip位址的東西,熟悉2進制的朋友應該有感覺,255這個數字就是28-1,我們把子網路遮罩的255.255.255.0換作是二進制來,就會變成

11111111.11111111.11111111.00000000

這樣子的東西,而透過子網路遮罩來辨別Ip地址哪一個部分是網際網路的方法是

「當子網遮罩的二進制數字為1時,就代表這部分是來自網際網路IP的網路位」

image-20230914122020798

因此,若前面這幾個數字一樣,就代表這些是來自同一個網域的通訊,不需要透過Gateway,反之,若有不同,則代表是來自不同網域的請求,需要走Gateway

參考網址

目前B站唯一把Gateway网关讲透的视频教程!一天即可掌握Gateway!

Licensed under CC BY-NC-SA 4.0