前言
新的工作充滿著各種類型的微服務架構,讓我頓時間有點分不清南北,於是就利用這段剛入職,還很閒的時候帶薪學習吧!
為什麼要用網關?
微服務的架構中,每個業務都需要授權、限流、處理跨域請求,如果每個功能都各自為棧,自己的輪子自己造,會非常厲害!但有些東西是可以抽出來,放到一個統一的地方去維護。另外來說,微服務中,如果每個微服務都分配一個域名,這樣子會非常難以維護客戶端的Code,因為涉及到數百個域名,另一方面是連接數量的瓶頸,想像一下如果你打開一個網站,結果發現光開啟網站就涉及了數百個RPC(Remote Procude Call),這樣會非常低效,各何況Address存在集群(Cluster)的情況下,那麼複雜度會成幾何增長。
沒有使用網關的調用
使用網關的調用
不用直接去請求微服務,可以透過Gateway來訪問
何謂默認網關
所謂的默認網關就只是讓設備可以透過網路,和一端設備溝通的東西。
那麼相同網域的電腦如果要相互溝通,則只需要透過switch就可以,因為他們的數據不需要通過Gateway傳出去
那麼接下來就有一個問題了,我要跟A電腦溝通,但我如何知道A電腦和我是否處在同一個網域中呢?
IP地址與子網遮罩
一個Ip位址包含兩個部分
- Network Address
- Host Address
而區分哪個部分屬於網際網路與本地主機的方式,則是透過子網遮罩
所謂子網路遮罩,是這段看起來有點像ip位址的東西,熟悉2進制的朋友應該有感覺,255這個數字就是28-1,我們把子網路遮罩的255.255.255.0換作是二進制來,就會變成
11111111.11111111.11111111.00000000
這樣子的東西,而透過子網路遮罩來辨別Ip地址哪一個部分是網際網路的方法是
「當子網遮罩的二進制數字為1時,就代表這部分是來自網際網路IP的網路位」
因此,若前面這幾個數字一樣,就代表這些是來自同一個網域的通訊,不需要透過Gateway,反之,若有不同,則代表是來自不同網域的請求,需要走Gateway